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;
廣告