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

MySQL報錯cannot?add?foreign?key?constraint的問題解決方法

 更新時間:2023年06月07日 10:38:25   作者:吳名氏.  
這篇文章主要介紹了MySQL報錯cannot?add?foreign?key?constraint的問題解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1 問題場景

利用Navicat對MySQL兩張表想要進行外鍵關(guān)聯(lián)時設(shè)置正確,但出現(xiàn)出現(xiàn)如下錯誤

在這里插入圖片描述

2 原因分析

創(chuàng)建外鍵錯誤的原因大概有一下幾個原因:
1、關(guān)聯(lián)的兩個字段的字段的類型不一致
2、設(shè)置外鍵刪除時set null
3、兩張表的引擎不一致

2.1 數(shù)據(jù)類型不一致

主表:

在這里插入圖片描述

需要關(guān)聯(lián)的表:

在這里插入圖片描述

2.2 字段設(shè)置不一樣

主表:

在這里插入圖片描述

需要關(guān)聯(lián)的表:

在這里插入圖片描述

2.3 引擎設(shè)置為“InnoDB”

數(shù)據(jù)庫引擎應(yīng)該一致,如圖:

在這里插入圖片描述

3 總結(jié)

3.1 外鍵條件

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

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

3.2 外鍵約束

所謂外鍵約束,就是指外鍵的作用。之前所講的外鍵的作用都是默認的作用,實際上,可以通過對外鍵的需求,進行定制操作。外鍵約束有三種模式,分別為:

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

到此這篇關(guān)于MySQL報錯cannot add foreign key constraint的問題解決方法的文章就介紹到這了,更多相關(guān)mysql cannot add foreign key constraint內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql執(zhí)行sql文件報錯Error: Unknown storage engine‘InnoDB’的解決方法

    mysql執(zhí)行sql文件報錯Error: Unknown storage engine‘InnoDB’的解決方法

    最近在執(zhí)行一個innoDB類型sql文件的時候,發(fā)現(xiàn)系統(tǒng)報錯了,通過查找相關(guān)的資料終于解決了,所以下面這篇文章主要給大家介紹了關(guān)于mysql執(zhí)行sql文件時報錯Error: Unknown storage engine 'InnoDB'的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • MySQL?中常見的幾種高可用架構(gòu)部署方案解析

    MySQL?中常見的幾種高可用架構(gòu)部署方案解析

    MySQL Replication 是官方提供的主從同步方案,用于將一個 MySQL 的實例同步到另一個實例中,這篇文章主要介紹了MySQL?中常見的幾種高可用架構(gòu)部署方案,需要的朋友可以參考下
    2023-04-04
  • windows環(huán)境下Mysql中文亂碼問題解決方法

    windows環(huán)境下Mysql中文亂碼問題解決方法

    在搭建Mysql環(huán)境的時候遇到了中文亂碼問題,下面與大家分享下具體的解決方法,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • mysql把主鍵定義為自動增長標(biāo)識符類型

    mysql把主鍵定義為自動增長標(biāo)識符類型

    這篇文章主要介紹了mysql中如何把主鍵定義為自動增長標(biāo)識符類型,下面有個不錯的示例,大家可以參考下
    2014-07-07
  • MySQL刪除binlog日志文件的三種實現(xiàn)方式

    MySQL刪除binlog日志文件的三種實現(xiàn)方式

    本文介紹了三種刪除MySQL binlog日志文件的方法,包含手動刪除、使用SQL命令刪除和設(shè)置自動清理,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • 淺析MySQL如何實現(xiàn)事務(wù)隔離

    淺析MySQL如何實現(xiàn)事務(wù)隔離

    使用過關(guān)系型數(shù)據(jù)庫的,應(yīng)該都事務(wù)的概念有所了解,知道事務(wù)有 ACID 四個基本屬性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability),今天我們主要來理解一下事務(wù)的隔離性
    2021-06-06
  • 在Qt中操作MySQL數(shù)據(jù)庫的實戰(zhàn)指南

    在Qt中操作MySQL數(shù)據(jù)庫的實戰(zhàn)指南

    QT連接Mysql數(shù)據(jù)庫的步驟相對繁瑣,但是也是一個不錯的學(xué)習(xí)經(jīng)歷,下面這篇文章主要給大家介紹了關(guān)于在Qt中操作MySQL數(shù)據(jù)庫的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • MySQL如何用GROUP BY分組取字段最大值或最新一條

    MySQL如何用GROUP BY分組取字段最大值或最新一條

    這篇文章主要介紹了MySQL如何用GROUP BY分組取字段最大值或最新一條問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn)

    DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn)

    本文主要介紹了DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL中@i:=@i+1表達式用法詳解

    MySQL中@i:=@i+1表達式用法詳解

    這篇文章主要給大家介紹了關(guān)于MySQL中@i:=@i+1表達式用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用mysql具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08

最新評論