mysql建表键约束(主键约束,自增约束)
-- 主键约束:
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; //通过修改一字段去给他添加主键