真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Navicat中添加外鍵-創(chuàng)新互聯(lián)

本篇文章為大家展示了怎么在Navicat中添加外鍵,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站是專業(yè)的海興網(wǎng)站建設(shè)公司,海興接單;提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行海興網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

前言

用Navicat為mysql數(shù)據(jù)庫的兩個(gè)表之間建立外鍵關(guān)系,出現(xiàn)“cannot add foreign key constraint”錯(cuò)誤,操作了很久不知道怎么回事,發(fā)現(xiàn)竟然是。。。。

正文

想要建立class表與student表之間的外鍵連接,class為父表,student為子表

怎么在Navicat中添加外鍵

怎么在Navicat中添加外鍵

打開student的設(shè)計(jì)表。

怎么在Navicat中添加外鍵

怎么在Navicat中添加外鍵

如果c_id不允許為空則當(dāng),選擇刪除時(shí)-->>SET NULL就會(huì)出現(xiàn)Cannot add foreign key constraint的提示,這是因?yàn)閯h除置空有條件,必須滿足字段允許為空(如果不滿足,外鍵無法創(chuàng)建)當(dāng)然,如果不允許為空,可以選擇刪除時(shí)-->>CASCADE也可以建立外鍵。

怎么在Navicat中添加外鍵

當(dāng)勾選允許為空之后

怎么在Navicat中添加外鍵

再去保存就可以了。

還有必須注意,Engin必須為InnoDB。

怎么在Navicat中添加外鍵

總結(jié)一下:

外鍵條件

在我們使用外鍵的時(shí)候,應(yīng)該遵循如下條件:

  • 外鍵要存在,首先必須保證表的引擎是 InnoDB(默認(rèn)的存儲(chǔ)引擎),如果不是 InnoDB 存儲(chǔ)引擎,那么外鍵可以創(chuàng)建成功,但沒有約束作用;
  • 外鍵字段的字段類型(列類型),必須與父表的主鍵類型完全一致;
  • 每張表中的外鍵名稱不能重復(fù);
  • 增加外鍵的字段,如果數(shù)據(jù)已經(jīng)存在,那么要保證數(shù)據(jù)與父表中的主鍵對(duì)應(yīng)。
  • 如果外鍵約束模式選擇SET NULL ,那么字段必須允許為NULL,否則出現(xiàn)Cannot add foreign key constraint。

外鍵約束

所謂外鍵約束,就是指外鍵的作用。之前所講的外鍵的作用都是默認(rèn)的作用,實(shí)際上,可以通過對(duì)外鍵的需求,進(jìn)行定制操作。

外鍵約束有三種模式,分別為:

  • district:嚴(yán)格模式(默認(rèn)),父表不能刪除或更新一個(gè)已經(jīng)被子表數(shù)據(jù)引用的記錄;
  • cascade:級(jí)聯(lián)模式,父表的操作,對(duì)應(yīng)子表關(guān)聯(lián)的數(shù)據(jù)也跟著被刪除;
  • set null:置空模式,父表的操作之后,子表對(duì)應(yīng)的數(shù)據(jù)(外鍵字段)被置空。

 設(shè)計(jì)外鍵的界面,有七列:

  • 名(name):可以不填,保存時(shí)會(huì)自動(dòng)生成。
  • 欄位(FieldName):要設(shè)置的外鍵,如:student 里的c_id
  • 參考數(shù)據(jù)庫(Reference DataBase):外鍵關(guān)聯(lián)的數(shù)據(jù)庫
  • 被參考表(Reference Table):關(guān)聯(lián)的表,這里是class表
  • 參考欄位(Forgin filed Names):關(guān)聯(lián)的字段,class里的id
  • 刪除時(shí)(ondelete):刪除時(shí)候的動(dòng)作,當(dāng)時(shí)我選擇的是SETNULL
  • 更新時(shí)(onupdate):更新時(shí)候的動(dòng)作,我選擇的是CASCADE

上述內(nèi)容就是怎么在Navicat中添加外鍵,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:怎么在Navicat中添加外鍵-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/ccoejs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部