-- 主键约束:
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