欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年11月23日 14:15:50   作者:勁楓  
這篇文章主要介紹了Navicat添加外鍵詳細(xì)操作步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

正文

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

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

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

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

再去保存就可以了。

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

總結(jié)一下:

外鍵條件

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

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

外鍵約束

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

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

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

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

  • 名(name):可以不填,保存時會自動生成。
  • 欄位(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
  • 刪除時(ondelete):刪除時候的動作,當(dāng)時我選擇的是SETNULL
  • 更新時(onupdate):更新時候的動作,我選擇的是CASCADE

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

某個表已經(jīng)有記錄了,添加外鍵失敗,這時候只需要將兩個要關(guān)聯(lián)的表中的數(shù)據(jù)清空再從新添加外鍵關(guān)系即可。

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

相關(guān)文章

  • where 子句的執(zhí)行順序

    where 子句的執(zhí)行順序

    貌似在2005之前的版本中,where子句的順序是從前往后的。但是又貌似在2005的版本中進(jìn)行了優(yōu)化,所有的順序都被統(tǒng)一成了以過濾能力進(jìn)行排序的語句。
    2009-04-04
  • 一步步教你使用Navicat工具創(chuàng)建MySQL數(shù)據(jù)庫連接

    一步步教你使用Navicat工具創(chuàng)建MySQL數(shù)據(jù)庫連接

    Navicat是一套快速、可靠并價格相當(dāng)便宜的數(shù)據(jù)庫管理工具,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè),下面這篇文章主要給大家介紹了關(guān)于如何使用Navicat工具創(chuàng)建MySQL數(shù)據(jù)庫連接的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案 2 之 改良SQL語句

    海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案 2 之 改良SQL語句

    海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案 2 之 改良SQL語句...
    2007-03-03
  • dba_indexes視圖的性能分析

    dba_indexes視圖的性能分析

    前端時間,在監(jiān)控系統(tǒng)中加入了index的狀態(tài)是否為unusable,以及其并行度是否有設(shè)置的監(jiān)控:
    2008-08-08
  • 國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署過程詳解

    國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署過程詳解

    openGauss是一款開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它具有多核高性能、全鏈路安全性、智能運(yùn)維等企業(yè)級特性,這篇文章主要介紹了國產(chǎn)開源數(shù)據(jù)庫openGauss容器部署,需要的朋友可以參考下
    2022-08-08
  • DataGrip2022導(dǎo)入和導(dǎo)出sql文件圖文教程

    DataGrip2022導(dǎo)入和導(dǎo)出sql文件圖文教程

    這篇文章主要給大家介紹了關(guān)于DataGrip2022導(dǎo)入和導(dǎo)出sql文件的相關(guān)資料,DataGrip的導(dǎo)出功能也是相當(dāng)強(qiáng)大,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 關(guān)于關(guān)系數(shù)據(jù)庫如何快速查詢表的記錄數(shù)詳解

    關(guān)于關(guān)系數(shù)據(jù)庫如何快速查詢表的記錄數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于關(guān)系數(shù)據(jù)庫如何快速查詢表的記錄數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用關(guān)系數(shù)據(jù)庫具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • DataGrip 連接 HiveServer2 報錯的問題

    DataGrip 連接 HiveServer2 報錯的問題

    這篇文章主要介紹了DataGrip 連接 HiveServer2 報錯的問題,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 一文告訴你Sql的執(zhí)行順序是怎樣的

    一文告訴你Sql的執(zhí)行順序是怎樣的

    這篇文章主要給大家介紹了關(guān)于Sql的執(zhí)行順序是怎樣的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案集合1/2

    海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案集合1/2

    海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案集合1/2...
    2007-03-03

最新評論