Mysql表創(chuàng)建外鍵報錯解決方案
數(shù)據(jù)庫表A:
CREATE TABLE task_desc_tab ( id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主鍵' AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL COMMENT '任務(wù)名字', sqlname VARCHAR(20) NOT NULL COMMENT 'sql文件名字', params VARCHAR(5000) NOT NULL COMMENT '任務(wù)參數(shù),格式為一個JSON字符串', updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '更新時間', detail VARCHAR(3000) COMMENT '任務(wù)一些描述信息,只是備注信息作用' ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
數(shù)據(jù)庫B:
CREATE TABLE exec_plan_tab ( id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL, startdate DATE NOT NULL, enddate DATE NOT NULL, updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, CONSTRAINT exec_plan_tab_task_desc_tab_taskname_fk FOREIGN KEY (taskname) REFERENCES task_desc_tab (taskname) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
目標(biāo):創(chuàng)建表使得表B中的taskname為外鍵,參考表A中的taskname字段,創(chuàng)建表發(fā)現(xiàn)報錯如下:
[2018-07-19 15:02:29] [HY000][150] Create table 'daxin/#sql-5d_30' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns.
[2018-07-19 15:02:29] [HY000][1215] Cannot add foreign key constraint
[2018-07-19 15:02:29] [HY000][1215] Cannot add foreign key constraint
經(jīng)過排查找到問題原因: 表A中的taskname必須使用UNIQUE字段修飾,這樣保證記錄唯一性,當(dāng)表B參考時候不會出現(xiàn)歧義。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用SQL實現(xiàn)統(tǒng)計報表中的"小計"與"合計"的方法詳解
本篇文章是對使用SQL實現(xiàn)統(tǒng)計報表中的"小計"與"合計"的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL在關(guān)聯(lián)復(fù)雜情況下所能做出的一些優(yōu)化
這篇文章主要介紹了MySQL在關(guān)聯(lián)復(fù)雜情況下所能做出的一些優(yōu)化,作者通過添加索引來不斷優(yōu)化查詢時間,需要的朋友可以參考下2015-05-05關(guān)于django連接mysql數(shù)據(jù)庫并進(jìn)行數(shù)據(jù)庫的創(chuàng)建的問題
這篇文章主要介紹了django連接mysql數(shù)據(jù)庫并進(jìn)行數(shù)據(jù)庫的創(chuàng)建,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06windows下MySQL數(shù)據(jù)庫移動到其它盤
大家好,本篇文章主要講的是windows下MySQL數(shù)據(jù)庫移動到其它盤,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏2021-12-12MySQL(基于GTID方式)實現(xiàn)主從復(fù)制和單主復(fù)制詳細(xì)教程
在分布式數(shù)據(jù)庫系統(tǒng)中,主從復(fù)制是實現(xiàn)高可用性和數(shù)據(jù)冗余的重要手段,基于GTID的復(fù)制模式可以提供更強(qiáng)的復(fù)制一致性和簡化故障轉(zhuǎn)移過程,本文將詳細(xì)介紹如何配置單主復(fù)制的GTID模式,以便在MySQL數(shù)據(jù)庫中實現(xiàn)穩(wěn)定可靠的數(shù)據(jù)復(fù)制,需要的朋友可以參考下2024-07-07