mysql笔记3

796 查看

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 内部作为为一条语句处理,具体如下:

shelldrop 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