MySQL外來鍵約束 級聯刪除和更新

2021-10-18 19:27:40 字數 2351 閱讀 6814

外來鍵約束:

什麼是外來鍵約束:一張表中的某個字段引用另乙個表的主鍵

主表: 約束別人

副表/從表: 使用別人的資料,被別人約束

-- 建立部門表

create table department (

id int primary key auto_increment,-- 主鍵自增

dep_name varchar(20),

dep_location varchar(20)

);-- 新增2個部門

insert into department (dep_name, dep_location) values ('研發部', '廣州'), ('銷售部', '深圳');

-- 建立員工表,新增外來鍵約束

create table employee (

id int primary key auto_increment,-- 主鍵自增

name varchar(20),

age int,

dep_id int,-- 外來鍵

-- 新增乙個外來鍵

-- 外來鍵取名公司要求,一般fk結尾

constraint emp_depid_ref_dep_id_fk foreign key(dep_id) references department(id)

);-- emp_depid_ref_dep_id_fk 外來鍵的取名方式,外來鍵約束方式

-- 正常新增資料

insert into employee (name, age, dep_id) values

('張三', 20, 1),

('李四', 21, 1),

('王五', 20, 1),

('老王', 20, 2),

('大王', 22, 2),

('小王', 18, 2);

-- 刪除外來鍵

-- 刪除employee表的emp_depid_ref_dep_id_fk外來鍵

alter table employee drop foreign key emp_depid_ref_dep_id_fk;

-- 在employee表存在下新增外來鍵

資料操作注意事項:1.新增資料時:先新增主表中的資料,再新增從表中的資料

2.刪除資料時:先刪從表中的資料,再刪主表中的資料

3.修改資料時:如果主表中的主鍵被從表引用了,不能修改此主鍵的值

級聯刪除和更新

級聯:乙個表改變,另乙個表也跟著改變;

#外來鍵的級聯(擴充套件)

create table department (

id int primary key auto_increment,

dep_name varchar(20),

dep_location varchar(20)

);create table employee (

id int primary key auto_increment,

name varchar(20),

age int,

dep_id int,

constraint fk_002 foreign key (dep_id) references department(id)-- 這裡新增外來鍵約束,關聯主表主鍵:department(id)

on update cascade -- 字段支援 級聯更新

on delete cascade

);-- 正常新增資料

insert into employee (name, age, dep_id) values

('張三', 20, 1),

('李四', 21, 1),

('王五', 20, 1),

('老王', 20, 2),

('大王', 22, 2),

('小王', 18, 2);

mysql級聯刪除外來鍵約束 主外來鍵和外來鍵約束

主鍵 primary key 一列 或一組列 其值能夠唯一區分表中每個行 外來鍵 foreign key 外來鍵為某個表中的一列,它包含另乙個表的主鍵值,定義了兩個表之間的關係 右邊的departmentid是外來鍵。外來鍵約束是指用於在兩個表之間建立關係,需要指定引用主表的哪一列。on delet...

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

外來鍵約束 外來鍵級聯操作

建立db2資料庫 create database db2 使用db2資料庫 use db2 外來鍵約束 標準語法 constraint 外鍵名 foreign key 本表外來鍵列名 references 主表名 主表主鍵列名 建表時新增外來鍵約束 建立user使用者表 create table u...