MySQL添加外鍵報錯Cannot add foreign key constraint怎么解決?
mysql添加外鍵報錯:Cannot add foreign key constraint
問題描述:
error1512 Cannot add foreign key constraint或是error1452 Cannot add foreign key constraint等。
解決辦法
首先定義一個表a(字段名有id(主鍵),name,pas),
表b(id(主鍵),user_phone,user_collect)。
其實也就是添加外鍵步驟:
假設b表的user_phone要設置外鍵,且為a表的name(前提)
首先要知道:
- 1.外鍵字段不能為該表的主鍵,即id的外鍵不存在;
- 2.外聯(lián)字段要是主鍵或key或uniquekey等。在這里我們需要把表a的name字段設置為uniquekey。
- 3.字段與外聯(lián)字段的數(shù)據(jù)類型,長度,默認類型,排序等一直才行。這里我們加入a表中的name字段為varchar(20)utf8_bin,那么表b中的user_phone也要一樣才行。
- 4.想要設置外鍵的表要沒有數(shù)據(jù)才行。即表b中無數(shù)據(jù)才能設置外鍵。
- 5.數(shù)據(jù)庫引擎設置為INNODB型,即支持事務處理(mysql5.5版本以上默認類型)
- 6.如果問題還未解決看一下兩張表的主鍵屬性能否一致。
經(jīng)過上面幾個過程就可以完成外鍵的設置了,你可以設置如下:

在DELETE下設置RESTROCT為CASCADE時會有表a中刪除數(shù)據(jù),表b中關聯(lián)數(shù)據(jù)也會自動清除的效果。
關于引擎類型查看
右鍵設計表,點擊選項即可查看!

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于mysql+mycat搭建穩(wěn)定高可用集群負載均衡主備復制讀寫分離操作
這篇文章主要介紹了基于mysql+mycat搭建穩(wěn)定高可用集群負載均衡主備復制讀寫分離操作,需要的朋友可以參考下2018-09-09
mysql自動化安裝腳本(ubuntu and centos64)
這篇文章主要介紹了mysql自動化安裝腳本(ubuntu and centos64),需要的朋友可以參考下2014-05-05
MySQL日期格式化yyyy-mm-dd詳解(DATE_FORMAT()函數(shù))
MySQL提供了很多功能強大、方便易用的函數(shù),在進行數(shù)據(jù)庫管理以及數(shù)據(jù)的查詢和操作時,幫助我們提高對數(shù)據(jù)庫的管理效率,下面這篇文章主要給大家介紹了關于MySQL日期格式化yyyy-mm-dd(DATE_FORMAT()函數(shù))的相關資料,需要的朋友可以參考下2023-01-01
分享MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程
這篇文章主要介紹了分享MySQL生產(chǎn)庫內(nèi)存異常增高的排查過程,基于MySQL實例的內(nèi)存使用率高的報警的問題展開對主題的問題,具有一定的參考價值,需要的小伙伴可以參考一下2022-04-04

