濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Navicat添加外鍵詳細(xì)操作步驟

Navicat添加外鍵詳細(xì)操作步驟

熱門標(biāo)簽:河北便宜電銷機(jī)器人軟件 南昌呼叫中心外呼系統(tǒng)哪家好 泗洪正規(guī)電話機(jī)器人找哪家 湖南保險(xiǎn)智能外呼系統(tǒng)產(chǎn)品介紹 ai電話電話機(jī)器人 怎么申請(qǐng)400熱線電話 怎么去開(kāi)發(fā)一個(gè)電銷機(jī)器人 簡(jiǎn)單的智能語(yǔ)音電銷機(jī)器人 小程序智能電話機(jī)器人

前言

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

正文

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

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

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

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

再去保存就可以了。

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

總結(jié)一下:

外鍵條件

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

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

外鍵約束

所謂外鍵約束,就是指外鍵的作用。之前所講的外鍵的作用都是默認(rèn)的作用,實(shí)際上,可以通過(guò)對(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ù)庫(kù)(Reference DataBase):外鍵關(guān)聯(lián)的數(shù)據(jù)庫(kù)
  • 被參考表(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

以上字段也可以按照自己的需求填寫(xiě),設(shè)置完成后保存即可。

某個(gè)表已經(jīng)有記錄了,添加外鍵失敗,這時(shí)候只需要將兩個(gè)要關(guān)聯(lián)的表中的數(shù)據(jù)清空再?gòu)男绿砑油怄I關(guān)系即可。

到此這篇關(guān)于Navicat添加外鍵詳細(xì)操作步驟的文章就介紹到這了,更多相關(guān)Navicat添加外鍵內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • navicat無(wú)法遠(yuǎn)程連接mysql的解決方法
  • 使用navicat 8實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)和導(dǎo)入數(shù)據(jù) 管理用戶與權(quán)限[圖文方法]
  • Navicat查詢結(jié)果不能修改的原因及解決方法
  • navicat連接mysql出現(xiàn)2059錯(cuò)誤的解決方法
  • MySQL數(shù)據(jù)庫(kù)安裝和Navicat for MySQL配合使用教程

標(biāo)簽:威海 江蘇 瀘州 柳州 荊門 淮安 那曲 景德鎮(zhèn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Navicat添加外鍵詳細(xì)操作步驟》,本文關(guān)鍵詞  Navicat,添加,外鍵,詳細(xì),操作步驟,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Navicat添加外鍵詳細(xì)操作步驟》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Navicat添加外鍵詳細(xì)操作步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宁夏| 买车| 镇江市| 土默特右旗| 达尔| 安吉县| 定结县| 晋中市| 南和县| 琼结县| 资阳市| 宁海县| 台州市| 潮州市| 温州市| 徐汇区| 大同县| 济源市| 右玉县| 泸水县| 平远县| 雅安市| 赣榆县| 泽库县| 韶山市| 开原市| 保定市| 东乡族自治县| 镇安县| 原平市| 浦江县| 长治县| 浦东新区| 乡宁县| 绥滨县| 曲阜市| 神池县| 毕节市| 天镇县| 开封市| 泽普县|