-- 主键约束:
id  int  primary key 
可以唯一确定一张表中的一条记录,也就是通过给某个字段添加约束,就可以使得字段不重复且不为空。
create table date (
 id  int  primary key,
 sname varchar(20)
) 
--联合主键 :
primary key(id,sname) 
create table date (
id int,
sname varchar(20),
ssex  varchar(5),
sage  int,
primary key(id,sname)
) 
当你插入内容时两条记录字段和起来是不能重复的
insert into date values(1,'李四',18);
insert into date values(2,'李四',18);  //此时不会报错 
当你插入的内容重复时会报错
insert into date vlaues(1,'李四',18);
insert into date vlaues(1,'李四',18); 
--自增约束:
auto_increment  这个时候id 就会自动增长 
create table data(
id  int primary key auto_increment,
sname varchar(20)
) 
当你在插入的时候就可以不用插入id 的值
insert into data(sname) values('李四');  //当你插入内容的时候尤其要注意,  data(sname)    表名后面要接插入的字段名 
  
当你设置自增约束时,必须要对同一字段设置其他约束,不然就会报错。
CREATE TABLE data(
id int  auto_increment,
sname varchar(20)
)
[Err] 1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key 
--建表的时候忘记添加主键约束,添加表的主键约束,删除表的主键,修改主键
create table data1(
id int,
sname varchar(20),
sage int
)
alter table data1 add primary key(id); //添加主键的语句
alter table data1 drop primary key;  //删除主键的语句
alter table data1 modify id int primary key; //通过修改一字段去给他添加主键 
来源:oschina
链接:https://my.oschina.net/u/4365191/blog/3353345