2016年3月19日 星期六

[MySQL] MySQL 常用方法(2) ALTER + MODIFY / CHANGE

新增primary key

ALTER TABLE my_table
ADD COLUMN contact_id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (contact_id);


將舊有的某欄位 改成primary key 來用,且將原本欄位名稱 name 改成 contact_id
ALTER TABLE my_table
CHANGE COLUMN name contact_id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (contact_id);


改table name

ALTER TABLE oldname RENAME TO new_table_name;

改變某一欄位的名稱 和資料型別
ALTER TABLE my_table
CHANGE COLUMU oldname new_name VARCHAR(100);

如果要連續改很多欄位 只要用, 接著就可以。

ALTER TABLE my_table
CHANGE COLUMU oldname new_name VARCHAR(100),
CHANGE COLUMU oldnameb new_nameb VARCHAR(30),
CHANGE COLUMU oldnamec new_namec VARCHAR(100);

NOTE: 如果資料型別改小,原本資料會被截斷。 varchar 100 -> 10 , 則裡面的string 可能會被截斷。造成資料遺失。


只想改動資料型別。不想換名稱時。
ALTER TABLE my_table
MODIFY COLUMN old)name VARCHAR(100);


想刪除某欄位
ALTER TABLE my_table
DROP COLUMN xxxx;



移除主鍵 primary key
ALTER TABLE your_table DROP PRIMARY KEY;

設定某欄為AUTO_INCREMENT
ALTER TABLE your_table CHANGE your_id your_id INT(11) NOT NULL AUTO_INCREMENT;

反之,刪除某欄的AUTO_INCREMENT
ALTER TABLE your_table CHANGE your_od your_id INT(11) NOT NULL;

*一個table 只能有一欄可以加上AUTO_INCREMENT,且為整數型別,不含NULL.


#######ALTER 小結

ALTER TABLE
以保持現有資料表內容為前提,修改資料表名稱或整體結構

ALTER ADD
把資料欄安插到表中指定的順序

ALTER DROP
從資料表中刪除資料欄

ALTER CHANGE
同時修改現有資料欄位名稱與型別

ALTER MODIFY
只修改型別



















沒有留言:

張貼留言