MySQL学习笔记--2数据表约束

数据库表约束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;

相关文章
相关标签/搜索