Mysql 語句之 更改表結構 ALTER (alter)
原創
表A為例:
代碼如下 復制代碼create table A(
A_a int not null,
A_b int not null,
A_c char
)ENGINE=InnoDB CHARSET=utf8;
語法:alter table 表名 action:
說明:action 可以是如下語句:
可以為表添加一列,如果沒指定first或者after,則在列尾添加一列,否則在指定列添加新列
add 列名<建表語句> (first | after 列名)
代碼如下 復制代碼alter table A add A_d int first; #first 增加在第一列.
alter table A add A_e int after A_b; #first 增加在第一列.
alter table A add A_f int;
為表添加一個主鍵,如果主鍵已經存在,則出現錯誤
代碼如下 復制代碼add primary key (列名)
alter table A add primary key(A_a);
可以更改指定列默認值
代碼如下 復制代碼alter 列名 set default 默認值
alter table A alter A_c set default 'Y';
可以更改列類型,如果原列的名字和新列的名字相同,則change和Modify的作用相同
代碼如下 復制代碼change (modify) 列名< 建表語句>(first | after)
alter table A change A_c A_f int [first | after 在X列名後];#更改列名 類型 位置 新列名 在 舊列名前
alter table A modify A_e char [first | after 在X列名後]; #只更改列類型或者位置
可以刪除一列
drop 列名
代碼如下 復制代碼alter table A drop A_d;
可以刪除主鍵
代碼如下 復制代碼drop primary key
alter table A drop primary key ;
可以刪除索引
代碼如下 復制代碼drop index index_name;
alter table A drop index index_name;
可以將表名更改
代碼如下 復制代碼rename as 新表名
rename table 舊表名 TO 新表名;
alter table A rename as B;
rename table B to A; #舊表名 TO 新表名