MySQL中利用外來鍵實現級聯刪除 更新

2021-10-01 10:14:17 字數 1370 閱讀 2291

mysql支援外來鍵的儲存引擎只有innodb,在建立外來鍵的時候,要求父表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引

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

其中restrictno action相同,是指在子表有關聯記錄的情況下父表不能更新;

cascade表示父表在更新或者刪除時,更新或者刪除子表對應記錄;

set null則是表示父表在更新或者刪除的時候,子表的對應欄位被set null。

因為只有innodb引擎才允許使用外來鍵,所以,我們的資料表必須使用innodb引擎。

我所使用的版本是mysql5.1版本的,過程如下:

建立資料庫:

create database test;

建立兩個表,其中第乙個表的」id」是第二個表(userinfo)的外來鍵:

create table user (

id int(4) not null,

*** enum('f','m') default null,

primary key (`id`)

engine=innodb default charset=utf8;

create table userinfo`(

sn int(4) not null auto_increment,

userid int(4) not null,

info varchar(20) default null,

primary key `sn),

key userid (userid),

constraint userinfo_ibfk_1 foreign key (userid) references user (id)

on delete cascade on update cascade

) engine=innodb default charset=utf8;

注意:

1、儲存引擎必須使用innodb引擎;

2、外來鍵必須建立索引;

3、外來鍵繫結關係這裡使用了「 on delete cascade 」 「on update cascade」,意思是如果外來鍵對應資料被刪除或者更新時,將關聯資料完全刪除或者相應地更新。更多資訊請參考mysql手冊中關於innodb的文件;

MySQL利用外來鍵實現級聯操作

mysql中利用外來鍵實現級聯刪除 更新 mysql支援外來鍵的儲存引擎只有innodb,在建立外來鍵的時候,要求父表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引。在建立索引的時候,可以指定在刪除 更新父表時,對子表進行的相應操作,包括restrict no action set ...

MySQL利用外來鍵實現級聯操作

mysql中利用外來鍵實現級聯刪除 更新 mysql支援外來鍵的儲存引擎只有innodb,在建立外來鍵的時候,要求父表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引。在建立索引的時候,可以指定在刪除 更新父表時,對子表進行的相應操作,包括restrict no action set ...

在MySQL中利用外來鍵實現級聯刪除

create table roottb id int 11 unsigned auto increment not null,data varchar 100 not null default primary key id type innodb create table subtb id int ...