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;

相關文章
相關標籤/搜索