程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> MySQL中使用外鍵實現級聯約束

MySQL中使用外鍵實現級聯約束

編輯:MYSQL入門知識
 

在MySQL中主要有innodb引擎提供外鍵支持,能夠利用外鍵實現級聯更新,刪除(沒有插入)。

使用innodb引擎,在創建外鍵的時候,要求父表必須有對應的索引,子表在創建外鍵的時候也會自動創建對

應的索引。在創建索引的時候,可以指定在刪除、更新父表時,對子表進行的相應操作,包括RESTRICT、

NO ACTION、SET NULL和CASCADE。其中RESTRICT和NO ACTION相同,是指在子表有關聯記錄的情況

下父表不能更新;CASCADE表示父表在更新或者刪除時,更新或者刪除子表對應記錄;SET NULL則是表示

父表在更新或者刪除的時候,子表的對應字段被SET NULL。 因為只有InnoDB引擎才允許使用外鍵,所以,

我們的數據表必須使用InnoDB引擎。下面是一個例子:

mysql> create database foreignkey ;

Query OK, 1 row affected (0.00 sec)

mysql> create table foreignkey.foreign (

-> id int not null auto_increment,

->)engine=innodb;//創建一個主表,只含有id主鍵

Query OK, 0 rows affected (0.09 sec)

mysql> create table foreignkey.foreign (

-> id int not null auto_increment,

-> fid int not null,

-> content varchar(255) not null,

-> primary key(id),

//這裡定義fid關聯表mian的id主鍵 采取級聯更新刪除操作

-> foreign key (fid) references main(id) on update cascade

-> on delete cascade)engine=innodb;//創建一個含有外鍵的表

Query OK, 0 rows affected (0.09 sec)

插入幾條數據,省略...

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved