分类 | DDL 操作 | 变更方式 |
索引操作 | 添加唯一索引 | ALTER TABLE table_name ADDUNIQUEINDEX idx_name(col_list); |
| 添加一个二级索引 | ALTER TABLE tbl_name ADD INDEX name (col_list); |
| 删除一个索引 | ALTER TABLE tb_name DROP INDEX index_name; |
| 重命名索引 | ALTER TABLE tbl_name RENAME INDEX old_index_name TO new_index_name; |
| 添加 FullText 索引 | ALTER TABLE tbl_name ADD FULLTEXT INDEX name (col_list); |
| 添加 SPATIAL 索引 | ALTER TABLE tbl_name ADD SPATIAL INDEX name (col_list); |
| 修改索引的类型 | ALTER TABLE tbl_name DROP INDEX i1, ADD INDEX i1(key_part,...) USING BTREE; |
列操作 | 添加列 | ALTER TABLE table_name ADD COLUMN col_name column_definition; |
| 删除列 | ALTER TABLE table_name DROP COLUMN col_name; |
| 列顺序重排 | ALTER TABLE tbl_name MODIFY COLUMN col_name column_definition FIRST; |
| 设置列的默认值 | ALTER TABLE tbl_name ALTER COLUMN col SET DEFAULT literal; |
| 删除列的默认值 | ALTER TABLE tbl ALTER COLUMN col DROP DEFAULT; |
| 修改列的数据类型 | ALTER TABLE tbl_name CHANGE col_name col_name new_data_type; |
| 扩展 VarChar 类型长度-变大 | ALTER TABLE tbl_name CHANGE col_name col_name VARCHAR(255); |
| 扩展 VarChar 类型长度-变小 | ALTER TABLE tbl_name CHANGE col_name col_name VARCHAR(250); |
| 修改列的 auto-increment 值 | ALTER TABLE table AUTO_INCREMENT=next_value; |
| 设置列为 NULL | ALTER TABLE tbl_name MODIFY COLUMN column_name data_type NULL; |
| 设置列 NOT NULL | ALTER TABLE tbl_name MODIFY COLUMN column_name data_type NOT NULL; |
| 修改 ENUM 或者 SET 列的定义 | ALTER TABLE t1 MODIFY COLUMN c1 ENUM('a', 'b', 'c', 'd'); |
外键操作 | 新增外键限制 | ALTER TABLE tbl1 ADD CONSTRAINT fk_name FOREIGN KEY(col1) REFERENCES tbl2(col2) referential_actions; |
| 删除外键限制 | ALTER TABLE tbl DROP FOREIGN KEY fk_name; |
表操作 | 变更表字符集 | ALTER TABLE `test_db`.`user` CHARACTER SET = utf8mb4, COLLATE = utf8mb4_bin; |
| 修改 ROW_FORMAT | ALTER TABLE tbl_name ROW_FORMAT = row_format; 说明 row_format 的取值范围包括 REDUNDANT、COMPACT、DYNAMIC。 |
| 修改 KEY_BLOCK_SIZE | ALTER TABLE tb_name KEY_BLOCK_SIZE=key_block_size; |
| 设置字符集 | ALTER TABLE tbl_name CHARACTER SET = charset_name; |
| convert 字符集 | ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name; |
| FORCE 重建表 | ALTER TABLE tbl_name FORCE; |