mysql外來鍵級聯更新刪除

2021-09-07 07:06:22 字數 1151 閱讀 5027

mysql支援外來鍵的儲存引擎只有innodb,在建立外來鍵的時候,要求父表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引。在建立索引的時候,可以指定在刪除、更新父表時,對子表進行的相應操作,包括restrict、no action、set null和cascade。其中restrict和no 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=latin1;

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=latin1;

注意:

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

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

3、外來鍵繫結關係這裡使用了「 on delete cascade 」 「on update cascade」,意思是如果外來鍵對應資料被刪除或者更新時,將關聯資料完全刪除或者相應地更新。

mysql 利用外來鍵級聯刪除 更新

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

SQLite 外來鍵 級聯更新 刪除

自身關聯 create table business id varchar 50 not null primary key,name varchar 200 not null,parent id varchar 50 configurationpage boolean not null,foreig...

mysql外來鍵級聯刪除

create table user id int 4 not null,enum f m default null,primary key id engine innodb default charset latin1 create table userinfo sn int 4 not null ...