MySQL 外來鍵應用

2021-09-19 21:53:50 字數 1113 閱讀 1054

1). mysql 引擎

圖1.png

如果innodb狀態不可用,可參考此文啟用.

2). 建立主表

create table parent(id int not null,primary key(id)) engine=innodb;
3). 建立從表
create table child(id int,parent_id int,foreign key (parent_id) references parent(id) on delete cascade) engine=innodb;
4). 主表插入資料
insert into parent values(1),(2),(3);
5). 從表插入資料
insert into child values(1,1),(1,2),(1,3),(1,4);
圖2.png

因為主表中不存在4這個資料, 插入時發生了外來鍵約束錯誤

insert into child values(1,1),(1,2),(1,3);
6). 刪除主表資料
delete from parent where id=1;
刪除主表記錄,從表也將同時刪除相應記錄.

7). 更新從表外來鍵

update child set parent_id=4 where parent_id=2;
更新child中的外來鍵,如果對應的主鍵不存在,則報錯:

圖3.png

update child set parent_id=2 where parent_id=2;
主表中存在的資料則更新成功.

8). 從表資料更新操作

在父表中更新或者刪除一行,並且在子表中也有一行或者多行匹配,此時子表的操作有5個選擇:

mysql外來鍵的應用 MySQL外來鍵應用

mysql外來鍵應用,所有tables必須是innodb型,它們不能是臨時表.因為在mysql中只有innodb型別的表才支援外來鍵.mysql版本 5.5.28 系統平台 rhel 5.8 32位 1 外來鍵的使用 外來鍵的作用,主要有兩個 乙個是讓資料庫自己通過外來鍵來保證資料的完整性和一致性 ...

mysql 外來鍵 del 記錄 MySQL 外來鍵

在mysql中 1 mysql 資料表主要支援六種型別 分別是 bdb heap isam merge myisam innobdb。這六種又分為兩類,一類是 事務安全型 transaction safe 包括bdb和innodb 其餘都屬於第二類,稱為 非事務安全型 non transaction...

mysql外來鍵和外來鍵約束

1.mysql中 鍵 和 索引 的定義相同,所以外來鍵和主鍵一樣也是索引的一種。不同的是mysql會自動為所有表的主鍵進行索引,但是外來鍵字段必須由使用者進行明確的索引。用於外來鍵關係的字段必須在所有的參照表中進行明確地索引 2.如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主...