alter命令提供了一种方法来更改现有表的结构,这意味着删除或添加列,修改索引,更改数据类型或更改名称等修改。 alter还会在元数据锁定处于活动状态时等待应用更改。
alter与drop配对会删除现有列。 但是,如果列是唯一的剩余列,它将失败。
查看下面给出的示例 -
mysql> alter table products_tbl drop version_num;
使用alter ... add语句添加列 -
mysql> alter table products_tbl add discontinued char(1);
使用关键字first和after指定列的位置 -
alter table products_tbl add discontinued char(1) first; alter table products_tbl add discontinued char(1) after quantity;
注意first和after关键字只适用于alter ... add语句。 此外,您必须删除一个表,然后添加它,以重新定位它。
使用alter语句中的modify或change子句更改列定义或名称。 这些子句具有类似的效果,但是使用明显不同的语法。
查看下面给出的change示例 -
mysql> alter table products_tbl change discontinued status char(4);
在使用change的语句中,指定原始列,然后指定将替换它的新列。 查看下面的modify示例 -
mysql> alter table products_tbl modify discontinued char(4);
alter命令还允许更改默认值。 查看示例 -
mysql> alter table products_tbl alter discontinued set default n;
您还可以使用它通过将其与drop子句配对来删除默认约束 -
mysql> alter table products_tbl alter discontinued drop default;
使用type子句更改表类型 -
mysql> alter table products_tbl type = innodb;
重命名具有rename关键字的表 -
mysql> alter table products_tbl rename to products2016_tbl;