您的位置:首页 > 数据库 > MySQL

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

2016-10-22 10:45 731 查看

主键

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

建表时设置主键

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: