MySQL 字段、索引的操作
- 增加字段
- 删除字段
- 修改字段名
- 修改字段名类型
- 删除索引
增加字段
alter table tablename add columnname varchar(20) default null; //默认为空
alter table tablename add columnname varchar(20) not null; //默认不为空
删除字段
alter table tablename drop column 字段名
修改字段
alter table tablename modify columnname newcolumnname varchar(20);
修改字段名类型
alter table tablename modify columnname varchar(20);
删除索引
可以通过alter table 和 drop index删除表的索引,drop index可以在alter table 内部作为为一条语句处理,具体如下:
shell
drop index index_name on tablename alter table tablename drop index index_name alter table tablename drop primary key
前两句是等价的,删除掉tablename中的索引index_name
第三条语句只是在删除primary key索引时使用,因为一个表只可能有一个priamry key索引,因此不需要指定索引名。
如果从表中删除了某列,则索引会受到影响。对于多数组合的索引,如果删除其中的某列,则该列也从索引中删除。如果删除组合索引的所有列,则整个索引将被删除。
实际操作,出现了如下问题
删除索引
MariaDB [TecentAct]> alter table act drop index index_pid;
ERROR 1091 (42000): Can’t DROP ‘index_pid’; check that column/key exists
MariaDB [TecentAct]> alter table act drop index pid_index;
ERROR 1091 (42000): Can’t DROP ‘pid_index’; check that column/key exists