国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

快速理解MySQL中主鍵與外鍵的實例教程

2024-07-24 12:45:21
字體:
來源:轉載
供稿:網友

主鍵與外鍵的關系,通俗點兒講,我現在有一個論壇,有兩張表,一張是主貼 thread,一張是回帖 reply

先說說主鍵,主鍵是表里面唯一識別記錄的字段,一般是帖子id,體現在訪問的時候,例如是
thread.php?id=1   表示我要訪問的是帖子id是1 的帖子~

再來說說外鍵,當我們刪除某個帖子的時候,需要執行另一個操作,就是刪除所有回帖,如果正常情況下,我們需要執行兩次delete操作(thread和 reply),這時候如果存在外鍵,例如,在reply 表里面建立一個指向thread表的主鍵(id)的外鍵(這個外鍵綁的字段,必須是對應帖子的id),并指定響應 delete ,那你在刪除 thread 的時候,mysql 自己會幫你把 reply 表中這個帖子的回復都刪掉,而不需要你手動再去執行一次reply表的delete操作~

至于兩者之間的關系,在剛才的例子中,reply 表的外鍵,指向的就是 thread 表的主鍵~~

搞個例子,簡單演示一下使用,做dage和xiaodi兩個表,大哥表是主鍵,小弟表是外鍵:
建表:

CREATE TABLE `dage` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) default '', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE `xiaodi` ( `id` int(11) NOT NULL auto_increment, `dage_id` int(11) default NULL, `name` varchar(32) default '', PRIMARY KEY (`id`), KEY `dage_id` (`dage_id`), CONSTRAINT `xiaodi_ibfk_1` FOREIGN KEY (`dage_id`) REFERENCES `dage` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

插入個大哥:

mysql> insert into dage(name) values('銅鑼灣');
Query OK, 1 row affected (0.01 sec)
mysql> select * from dage;
+----+--------+| id | name |+----+--------+| 1 | 銅鑼灣 |+----+--------+1 row in set (0.00 sec)

插入個小弟:

mysql> insert into xiaodi(dage_id,name) values(1,'銅鑼灣_小弟A');
Query OK, 1 row affected (0.02 sec)
mysql> select * from xiaodi;
+----+---------+--------------+| id | dage_id | name |+----+---------+--------------+| 1 | 1 | 銅鑼灣_小弟A |+----+---------+--------------+

把大哥刪除:

mysql> delete from dage where id=1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`bstar/xiaodi`, CONSTRAINT `xiaodi_ibfk_1` FOREIGN KEY (`dage_id`) REFERENCES `dage` (`id`))

提示:不行呀,有約束的,大哥下面還有小弟,可不能扔下我們不管呀!

插入一個新的小弟:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普定县| 彰化市| 抚州市| 灵山县| 神木县| 阿拉善右旗| 交口县| 巩留县| 涿鹿县| 高阳县| 巩留县| 遵义县| 桐梓县| 建德市| 剑川县| 巴南区| 稻城县| 岑溪市| 中牟县| 静乐县| 略阳县| 沈阳市| 广宁县| 堆龙德庆县| 盐边县| 扎兰屯市| 左贡县| 阳原县| 台中县| 临潭县| 塔城市| 安溪县| 兰溪市| 通道| 浦北县| 定南县| 察哈| 明溪县| 北碚区| 大足县| 花垣县|