總結
需要使用級聯操作,什麼是級聯操作:
在修改和刪除主表的主鍵時,同時修改或刪除從表的外鍵值,稱為級聯操作
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...