<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-09 20:54:29
        文檔

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

        快速理解MySQL中主鍵與外鍵的實例教程:主鍵與外鍵的關系,通俗點兒講,我現在有一個論壇,有兩張表,一張是主貼 thread,一張是回帖 reply 先說說主鍵,主鍵是表里面唯一識別記錄的字段,一般是帖子id,體現在訪問的時候,例如是 thread.php?id=1 表示我要訪問的是帖子id是1 的帖子~ 再
        推薦度:
        導讀快速理解MySQL中主鍵與外鍵的實例教程:主鍵與外鍵的關系,通俗點兒講,我現在有一個論壇,有兩張表,一張是主貼 thread,一張是回帖 reply 先說說主鍵,主鍵是表里面唯一識別記錄的字段,一般是帖子id,體現在訪問的時候,例如是 thread.php?id=1 表示我要訪問的是帖子id是1 的帖子~ 再

        主鍵與外鍵的關系,通俗點兒講,我現在有一個論壇,有兩張表,一張是主貼 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`))
        
        

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

        插入一個新的小弟:

        mysql> insert into xiaodi(dage_id,name) values(2,'旺角_小弟A'); 

               

        2ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`bstar/xiaodi`, CONSTRAINT `xiaodi_ibfk_1` FOREIGN KEY (`dage_id`) REFERENCES `dage` (`id`))
        


        提示:小子,想造反呀!你還沒大哥呢!

        把外鍵約束增加事件觸發限制:

        mysql> show create table xiaodi;
        

        CONSTRAINT `xiaodi_ibfk_1` FOREIGN KEY (`dage_id`) REFERENCES `dage` (`id`)

        mysql> alter table xiaodi drop foreign key xiaodi_ibfk_1;

        Query OK, 1 row affected (0.04 sec)
        Records: 1 Duplicates: 0 Warnings: 
        
        mysql> alter table xiaodi add foreign key(dage_id) references dage(id) on delete cascade on update cascade;
        
        Query OK, 1 row affected (0.04 sec)
        Records: 1 Duplicates: 0 Warnings: 0
        
        

        再次試著把大哥刪了:

        mysql> delete from dage where id=1;
        
        Query OK, 1 row affected (0.01 sec)
        
        
        mysql> select * from dage;
        
        Empty set (0.01 sec)
        
        
        mysql> select * from xiaodi;
        
        Empty set (0.00 sec)
        
        


        得,這回對應的小弟也沒了,沒辦法,誰讓你跟我on delete cascade了呢!

        例子說明的應該蠻清楚了吧,其他功能對應手冊自己實踐吧!:-)

        您可能感興趣的文章:

      1. MySQL 創建主鍵,外鍵和復合主鍵的語句
      2. MySQL 主鍵與索引的聯系與區別分析
      3. MySQL中的主鍵以及設置其自增的用法教程
      4. sqlserver數據庫主鍵的生成方式小結(sqlserver,mysql)
      5. mysql把主鍵定義為自動增長標識符類型
      6. Oracle與Mysql主鍵、索引及分頁的區別小結
      7. Mysql主鍵相關的sql語句集錦
      8. MySQL索引之主鍵索引
      9. MySQL中主鍵為0與主鍵自排約束的關系詳解(細節)
      10. 聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        快速理解MySQL中主鍵與外鍵的實例教程:主鍵與外鍵的關系,通俗點兒講,我現在有一個論壇,有兩張表,一張是主貼 thread,一張是回帖 reply 先說說主鍵,主鍵是表里面唯一識別記錄的字段,一般是帖子id,體現在訪問的時候,例如是 thread.php?id=1 表示我要訪問的是帖子id是1 的帖子~ 再
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 又长又大又粗又硬3p免费视频| 亚洲精品国产日韩| 一区二区三区免费看| 拔擦拔擦8x华人免费久久| 亚洲欧美中文日韩视频| 毛片基地免费视频a| 亚洲精品无码一区二区| 国产免费卡一卡三卡乱码| 色欲aⅴ亚洲情无码AV| 国产大片免费观看中文字幕| 亚洲大尺度无码无码专线一区| 妞干网免费观看视频| 亚洲AV永久无码精品放毛片| 国产yw855.c免费视频| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 最近中文字幕无免费视频| 亚洲欧美日韩中文无线码| 四虎影视在线永久免费看黄 | 天堂亚洲国产中文在线| 最近2019中文字幕免费看最新| 亚洲AV噜噜一区二区三区| 亚洲高清无码在线观看| 国产精品免费AV片在线观看| 亚洲自国产拍揄拍| 免费无遮挡无码永久在线观看视频| 一个人看的免费高清视频日本| 亚洲AV无码成人网站久久精品大| 日本h在线精品免费观看| 亚洲精品无码久久久久久| 久久精品亚洲乱码伦伦中文| 少妇无码一区二区三区免费| 男人天堂2018亚洲男人天堂| 亚洲男人的天堂在线va拉文| 最近免费中文字幕高清大全 | 亚洲韩国精品无码一区二区三区| 18级成人毛片免费观看| 国产成人精品久久亚洲高清不卡| 亚洲AV永久无码精品水牛影视| 成人毛片免费观看视频| 两个人看的www高清免费观看| 亚洲男人天堂2018av|