Mysql-Alter命令-修改表结构
2018-12-11 本文已影响2人
泥称已被栈用
一、新增列
- 新增ID列
ALTER TABLE table_name ADD id bigint PRIMARY KEY AUTO_INCREMENT first;
first
表示设置该列为表的第一列
- 新增普通列
ALTER TABLE table_name ADD col_name col_type after exists_col_name;
after
表示新增的列在已存在的某一列后面
二、修改列
- 修改某一列
ALTER TABLE table_name MODIFY COLUMN col_name col_type;
三、创建索引
- 创建主键
ALTER TABLE `table_name` ADD PRIMARY KEY (`col_name`);
- 创建普通索引
ALTER TABLE `table` ADD INDEX `index_name` (`col_name`);
In MySQL, if you use
ALTER TABLE tbl ADD INDEX (col)
instead ofALTER TABLE tbl ADD INDEX col (col)
, then usingALTER TABLE tbl ADD INDEX (col)
more than once will keep adding indices namedcol_2
,col_3
,... each time. Whereas usingALTER TABLE tbl ADD INDEX col (col)
2nd time, will giveERROR 1061 (42000): Duplicate key name 'col'
.
- 创建唯一索引
ALTER TABLE `table_name` ADD UNIQUE unique_index_name (`col_name`);
- 创建联合索引
ALTER TABLE `table_name` ADD INDEX `index_name` (`col_01`, `col_02`);
注意:联合索引需遵循最左匹配原则。
- 移除索引
DROP INDEX `index_name` ON `table_name`;
如果遇到无法删除索引的情况,比如DRDS一般就不能直接drop,需要使用alter table
来操作,如下:
ALTER TABLE `table_name` DROP INDEX `index_name`;
- 查询表索引
SHOW INDEX FROM `table_name`;
如有错误请指正。