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 子句来更改列定义或名称。这些子句具有相似的效果,但使用的语法大不相同。
    查看下面给出的更改示例 -
    
    mysql> ALTER TABLE products_tbl CHANGE discontinued status CHAR(4);
    
    在使用 CHANGE 的语句中,指定原始列,然后指定将替换它的新列。查看下面的修改示例 -
    
    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;