MariaDB - ALTER 命令



ALTER 命令提供了一种更改现有表结构的方法,这意味着可以进行诸如删除或添加列、修改索引、更改数据类型或更改名称之类的修改。当元数据锁处于活动状态时,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;

使用 ALTER 修改表

使用 TYPE 子句更改表类型:

mysql> ALTER TABLE products_tbl TYPE = INNODB;

使用 RENAME 关键字重命名表:

mysql> ALTER TABLE products_tbl RENAME TO products2016_tbl;
广告