MySQL添加/删除主键、外键、唯一键、索引、自增

来源:互联网 发布:matlab 中文论坛 知乎 编辑:程序博客网 时间:2024/05/22 08:29

主键

主键会自动添加唯一索引,所以主键列不需要添加索引

建表时设置主键

create table tableName(    id int primary key);或:create table tableName(    id int,    primary key (id));

单独设置主键

alter table tableName add primary key(id)

删除主键

alter table tableName drop primary key;

外键

建表时添加外键

create table tableName1(    tableName2_id int not null,    foreign key(tableName2_id) references tableName2(id));

单独添加外键

alter table tableName1 add constraint tableName1_ref_tableName2(foreignKeyName) foreign key(tableName2_id) references tableName2(id);

删除外键

alter table table1 drop foreign key foreignKeyName;

唯一键

唯一键会自动添加唯一索引,所以唯一键列不需要添加索引

建表时添加唯一键

create table tableName(    columnName int unique);或:create table tableName(    columnName int,    unique key(columnName));

单独添加唯一键

alter table tableName add unique key(columnName)

删除唯一键

alter table tableName drop index columnName;

索引

很多情况,mysql中的索引index和键key是同义词。
fulltext全文索引,只有MyISAM引擎支持,就不说了。

建表时添加索引

create table tableName(    columnName int key//这里只能用key不能用index);或:create table tableName(    columnName int,    key/index (columnName));或:create table tableName(    columnName int,    key/index indexName(columnName));多列索引:create table tableName(    columnName1 int,    columnName2 int,    key/index indexName(columnName1,columnName2));

单独添加索引

alter table tableName add key/index indexName(columnName)//单列索引alter table tableName add key/index indexName(columnName1,columnName2,columnName3)//多列索引

删除索引

alter table tableName drop key/index columnName;

自增

auto_increment必须要求该列是主键(或别的键,详细请看文章:http://blog.csdn.net/u012643122/article/details/52643888)

建表时添加自增

create table tableName(    columnName int unique auto_increment);或:create table tableName(    columnName int primary key auto_increment);

单独添加自增

alter table tableName change columnName columnName int unique auto_increment;或:alter table tableName change columnName columnName int primary key auto_increment;

删除自增

alter table tableName change columnName columnName int;

设置自增初始值

create table tableName(    columnName int primary key auto_increment)auto_increment=1;或:alter table tableName auto_increment=1;
0 0
原创粉丝点击