外來鍵有4種約束
1、restrict:立即檢查外來鍵約束
限制,如果子表引用了附表的某個字段,如外來鍵的引用,那麼就不允許直接刪除父表的該值。如果想要刪除,就得先刪除子表再刪除父表。
2、cascade:
級聯,update或者delete父表,子表中引用了該值所對應的記錄也會被自動同步update或delete
3、no action:
如果子表引用了附表的某個字段,如外來鍵的引用,那麼就不允許直接刪除父表的該值。如果想要刪除,就得先刪除子表再刪除父表。
4、set null:
在父表上update或者delete記錄時,子表中引用了該值所對應的記錄將會被設定為 null,但前提是該值不能設定為 not null。
建立示例:
create table employee(
emp_id int(20) primary key,
emp_depid int(20) not null,
emp_pasid int(20) not null,
constraint fk_emp_dep foreign key(emp_depid) references department(dep_id) on delete cascade on update cascade,
constraint fk_emp_pas foreign key(emp_pasid) references passwordtable(pwd_id) on delete cascade on update cascade
);constraint 外鍵名 foreign key(表內要關聯的字段) references 要關聯的父表(要關聯的父表中的關聯字段) on delete/update 約束 on delete/update 約束
mysql建立表時不手動設定約束將會自動設定為 restrict
MySQL約束條件之主鍵與外來鍵
但從約束層面上來說 相當於是 not null unique 非空且唯一 在此基礎之上還可以加快資料的查詢 innodb儲存引擎規定了一張表必須有且只有乙個主鍵 因為innodb是通過主鍵的方式來構造表的 如果沒有設定主鍵 情況1 沒有主鍵和其他約束條件 innodb會採用隱藏的字段作為主鍵 不能加...
MySQL學習筆記之約束條件
約束條件 primary key 主鍵 not null 非空 auto increment 自增長 unique 值唯一 foreing key 外來鍵 default 預設值 1 主鍵 乙個表中主鍵只能有乙個 但是可以組合使用,primary可以省略 create table thinkgame...
MySQL 約束條件
1 非空約束 not null規定某個欄位在插入的時候不能有null,標誌位非空的時候插入的時候必須給值,不然會報錯 2 唯一約束 unique規定某個字段在整個這一列中是唯一 3 主鍵 非空且唯一是主要特徵。主鍵可以唯一標識一行資料 可以從多行資料中定位到該資料 但是唯一標識一行資料的字段 或字段...