数据库表约束mysql
1:约束保证数据的完整性与一致性sql
2:约束粉尾表级约束和列级约束数据库
3:约束类型spa
not nullcode
primary key索引
unique keyrem
default table
foreign keyclass
4:建立外键约束的要求数据类型
父表和字表必须使用相同的存储引擎
数据表的存储引擎只能是InnoDB
外键列和参照列必须具备相同的数据类型,数字长度与符号位必须相同,字符长度能够不一样
s外键列与参照列必须建立索引,若是外键列不存在索引,mysql自动建立
eg:
create table provinces( id smallint unsigned primary key auto_increment, pname varchar(16) not null )engine=InnoDB default character set utf8;
create table users( id smallint unsigned primary key auto_increment, username varchar(20) not null, pid smallint unsigned not null, foreign key(pid) references provinces(id) )engine=InnoDB default character set utf8;
外键操做的参照操做
1:CASCADE从父表删除或更新且自动删除或更新字表总的行
2:SET NULL从父表删除或更新行并设置字表中的外键列为NULL,若是使用改选项必须保证字表列没有指定为not null
3:RESTRICT拒绝对父表的删除或更新操做
4:NO ACTION标准的SQL关键字,与RESTRICT相同
create table users1(
id smallint unsigned primary key auto_increment,
username varchar(20) not null,
pid smallint unsigned not null,
foreign key(pid) references provinces(id) on delete CASCADE
)engine=InnoDB default character set utf8;