mysql外來鍵的級聯刪除和修改

2021-10-06 13:53:21 字數 1650 閱讀 2494

總結

需要使用級聯操作,什麼是級聯操作:

在修改和刪除主表的主鍵時,同時修改或刪除從表的外鍵值,稱為級聯操作

on update cascade-- 級聯修改,主鍵發生修改時,外來鍵也會修改

on delete cascade – 級聯刪除,主鍵發生刪除時,外來鍵也會刪除

例:有員工表和部門表

員工表是從表,部門表是主表

create table employee (

id int primary key auto_increment,

name varchar(30

),age int,

dep_id int,

-- 新增外來鍵約束,並且新增級聯更新和級聯刪除

constraint employee_dep_fk foreign key (dep_id) references department

(id) on update

cascade on delete cascade

);

create table department (

id int primary key auto_increment,

dep_name varchar(20

),dep_location varchar(20));

insert into employee (name, age, dep_id) values (

'張三',20

,1);

insert into employee (name, age, dep_id) values (

'李四',21

,1);

insert into employee (name, age, dep_id) values (

'王五',20

,1);

insert into employee (name, age, dep_id) values (

'老王',20

,2);

insert into employee (name, age, dep_id) values (

'大王',22

,2);

insert into employee (name, age, dep_id) values (

'小王',18

,2);

insert into department (dep_name, dep_location) values (

'研發部'

,'廣州'),

('銷售部'

, '深

圳');

MySql 修改外來鍵 支援級聯刪除

首先必須要有外來鍵,innodb甚麼的都不說了,直接上修改句子。要先刪除該外來鍵,然後新增。具體原因貌似是因為不支援alter外來鍵的操作。alter table t terminal drop foreign key fk704405e7f06a14ef alter table t termina...

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 ...

mysql外來鍵級聯更新刪除

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