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 新表名 |
|