亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL使用外鍵實現級聯刪除與更新的方法

2024-07-24 13:10:01
字體:
來源:轉載
供稿:網友

本文實例講述了MySQL使用外鍵實現級聯刪除與更新的方法。分享給大家供大家參考,具體如下:

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, `sex` 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手冊中關于InnoDB的文檔;

好,接著我們再來插入數據測試:

INSERT INTO `user` (`id`,`sex`) VALUES ('1', 'f'), ('2', 'm'), ('3', 'f');INSERT INTO `userinfo` (`sn`,`userid`,`info`) VALUES ('1', '1', '2005054dsf'),       ('2', '1', 'fdsfewfdsfds'),       ('3', '1', 'gdsgergergrtre'),       ('4', '2', 'et34t5435435werwe'),       ('5', '2', '435rtgtrhfghfg'),       ('6', '2', 'ret345tr4345'),      ('7', '3', 'fgbdfvbcbfdgr'),       ('8', '3', '45r2343234were'),       ('9', '3', 'wfyhtyjtyjyjy');

我們先看一下當前數據表的狀態:

mysql> show tables;+----------------+| Tables_in_test |+----------------+| user      || userinfo    |+----------------+2 rows in set (0.00 sec)

User表中的數據:

mysql> select * from user;+----+------+| id | sex |+----+------+| 1 | f  || 2 | m  || 3 | f  |+----+------+3 rows in set (0.00 sec)

Userinfo表中的數據:

mysql> select * from userinfo;+----+--------+-------------------+| sn | userid | info       |+----+--------+-------------------+| 1 |   1 | 2005054dsf    || 2 |   1 | fdsfewfdsfds   || 3 |   1 | gdsgergergrtre  || 4 |   2 | et34t5435435werwe || 5 |   2 | 435rtgtrhfghfg  || 6 |   2 | ret345tr4345   || 7 |   3 | fgbdfvbcbfdgr   || 8 |   3 | 45r2343234were  || 9 |   3 | wfyhtyjtyjyjy   |+----+--------+-------------------+9 rows in set (0.00 sec)

對于建立以上不表,相信對大家也沒什么難度了。好的,下面我們就要試驗我們的級聯刪除功能了。

我們將刪除user表中id為2的數據記錄,看看userinf表中userid為2的相關子紀錄是否會自動刪除:

執行刪除操作成功!

mysql> delete from `user` where `id`='2';Query OK, 1 row affected (0.03 sec)

看看user表中已經沒有id為2的數據記錄了!

mysql> select * from user;+----+------+| id | sex |+----+------+| 1 | f  || 3 | f  |+----+------+2 rows in set (0.00 sec)

再看看userinfo表中已經沒有userid為2的3條數據記錄了,對應數據確實自動刪除了!

mysql> select * from userinfo;+----+--------+----------------+| sn | userid | info      |+----+--------+----------------+| 1 |   1 | 2005054dsf   || 2 |   1 | fdsfewfdsfds  || 3 |   1 | gdsgergergrtre || 7 |   3 | fgbdfvbcbfdgr || 8 |   3 | 45r2343234were || 9 |   3 | wfyhtyjtyjyjy |+----+--------+----------------+6 rows in set (0.00 sec)

更新的操作也類似,因為我們在前面建表的時候已經定義外鍵刪除、更新操作都是CASCADE,所以在這里可以直接測試數據。

將user表中原來id為1的數據記錄更改為id為4,執行如下:

mysql> update user set id=4 where id='1';Query OK, 1 row affected (0.03 sec)Rows matched: 1 Changed: 1 Warnings: 0

現在去看看兩個表中是數據是否發生了變化:

mysql> select * from user;+----+------+| id | sex |+----+------+| 3 | f  || 4 | f  |+----+------+2 rows in set (0.00 sec)mysql> select * from userinfo;+----+--------+----------------+| sn | userid | info      |+----+--------+----------------+| 1 |   4 | 2005054dsf   || 2 |   4 | fdsfewfdsfds  || 3 |   4 | gdsgergergrtre || 7 |   3 | fgbdfvbcbfdgr || 8 |   3 | 45r2343234were || 9 |   3 | wfyhtyjtyjyjy |+----+--------+----------------+6 rows in set (0.00 sec)

比較原來的表可以發現它們的確已經更新成功了,測試完成?。?!這也就實現了用外鍵對多個相關聯的表做同時刪除、更新的操作,從而保證了數據的一致性。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产成人在线视频| 久久福利网址导航| 欧美久久久精品| 91网站免费观看| 日韩在线观看你懂的| 日本高清不卡的在线| 午夜欧美大片免费观看| 韩国国内大量揄拍精品视频| 亚洲区bt下载| 麻豆精品精华液| 538国产精品一区二区免费视频| 国产精品香蕉av| 亚洲精品xxx| 人人澡人人澡人人看欧美| 色婷婷综合久久久久| 亚洲区bt下载| 日韩在线视频免费观看| 亚洲精品永久免费精品| 日韩在线观看视频免费| 亚洲精品一区中文| 精品久久久久久久久中文字幕| 欧美日韩一区二区免费视频| 欧美日韩一区二区精品| 久久久久成人网| 国产精品日韩av| 国产精品十八以下禁看| 尤物九九久久国产精品的分类| 俺去了亚洲欧美日韩| 91手机视频在线观看| 国产精品美女久久久久av超清| 乱亲女秽乱长久久久| 久久精品小视频| 久久久精品一区| 成人h片在线播放免费网站| 一区二区三区www| 亚洲aⅴ日韩av电影在线观看| 国产精品久久激情| 亚洲欧洲高清在线| 久久这里只有精品视频首页| 日韩电影中文 亚洲精品乱码| 日韩在线视频中文字幕| 91精品国产91久久久久福利| 91精品国产99久久久久久| 中文字幕日韩专区| 欧美国产日韩xxxxx| 久久久久久久97| 欧美另类在线播放| 欧美极品美女视频网站在线观看免费| 成人av在线亚洲| 国内精久久久久久久久久人| 欧美激情免费在线| 亚洲精品美女视频| 国产亚洲精品激情久久| 亚洲欧洲国产精品| 一夜七次郎国产精品亚洲| 91成人在线视频| 一区二区三区四区视频| 成人在线激情视频| 丝袜亚洲另类欧美重口| 欧美老少做受xxxx高潮| 国产精品jizz在线观看麻豆| 欧美另类暴力丝袜| 国产欧美日韩中文字幕| 日韩精品在线观看网站| 欧美成年人网站| 国产精品综合网站| 色与欲影视天天看综合网| 日韩成人在线电影网| 欧美激情性做爰免费视频| 国产精品第七影院| 欧美国产视频日韩| 日韩高清有码在线| www.日韩.com| 久久久在线视频| 久久国产精品99国产精| 欧美极品在线视频| 懂色aⅴ精品一区二区三区蜜月| 国产日韩在线看片| 日韩极品精品视频免费观看| 欧美激情乱人伦一区| 亚洲国产一区二区三区在线观看| 国产亚洲一区精品| 精品久久久久久中文字幕一区奶水| 九九热这里只有精品6| 国产午夜精品视频免费不卡69堂| 日韩电影视频免费| 欧美国产精品日韩| 亚洲第一国产精品| 国产97人人超碰caoprom| 久久久伊人欧美| 国产精品18久久久久久麻辣| 高清亚洲成在人网站天堂| 国产精品久久久久久久久久久久久久| 久久精品国产精品| 日韩在线视频免费观看高清中文| 欧美国产中文字幕| 国产日韩欧美在线| 78m国产成人精品视频| 亚洲精品自拍偷拍| 国产精品69av| 中文字幕日韩专区| 国产精品永久免费视频| 九九热这里只有在线精品视| 狠狠躁夜夜躁人人爽超碰91| 亚洲欧美一区二区三区久久| 亚洲欧美国产精品| 精品国产一区二区三区在线观看| 亚洲丝袜在线视频| 日本不卡高字幕在线2019| 欧美日韩另类字幕中文| 久久视频精品在线| 国产在线观看精品| 亚洲第一色在线| 成人黄色免费网站在线观看| 91po在线观看91精品国产性色| 国产欧美在线播放| 欧美在线观看视频| 成人精品久久一区二区三区| 欧美在线视频观看免费网站| 日日噜噜噜夜夜爽亚洲精品| 在线看欧美日韩| 欧美大学生性色视频| 欧美成人免费全部观看天天性色| 中文字幕精品av| 午夜精品久久久久久久99热| 亚洲aa在线观看| 欧美疯狂做受xxxx高潮| 国产女精品视频网站免费| 欧美日韩第一视频| 精品香蕉在线观看视频一| 久久精品夜夜夜夜夜久久| 日韩免费在线电影| 国产999精品久久久影片官网| 国产精品99久久久久久人| 最近2019免费中文字幕视频三| 尤物精品国产第一福利三区| 性亚洲最疯狂xxxx高清| 国产精品久久久久久久av大片| 欧美性受xxx| 国产盗摄xxxx视频xxx69| 国产精品久久久久99| 欧美日韩国产123| 日韩欧美高清在线视频| 欧美国产在线视频| 国产亚洲成精品久久| 91在线精品视频| 日韩网站免费观看| 亚洲性日韩精品一区二区| 欧美天天综合色影久久精品| 亚洲图片欧洲图片av| 亚洲人成电影网| 日韩精品在线视频观看| 成人福利网站在线观看| 色综合色综合网色综合| 国产精品wwwwww| 亚洲精品日韩丝袜精品| 欧美日韩免费在线观看| 亚洲一区二区中文| 亚洲精品电影网在线观看| 国产+成+人+亚洲欧洲| 国产91精品久久久久| 亚洲变态欧美另类捆绑| 97欧美精品一区二区三区| 亚洲一区二区三区视频播放|