Mysql表創(chuàng)建外鍵報(bào)錯(cuò)解決方案
數(shù)據(jù)庫(kù)表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ù),格式為一個(gè)JSON字符串', updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '更新時(shí)間', detail VARCHAR(3000) COMMENT '任務(wù)一些描述信息,只是備注信息作用' ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
數(shù)據(jù)庫(kù)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)報(bào)錯(cuò)如下:
[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)過(guò)排查找到問(wèn)題原因: 表A中的taskname必須使用UNIQUE字段修飾,這樣保證記錄唯一性,當(dāng)表B參考時(shí)候不會(huì)出現(xiàn)歧義。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
用SQL實(shí)現(xiàn)統(tǒng)計(jì)報(bào)表中的"小計(jì)"與"合計(jì)"的方法詳解
本篇文章是對(duì)使用SQL實(shí)現(xiàn)統(tǒng)計(jì)報(bào)表中的"小計(jì)"與"合計(jì)"的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
mysql 8.0.12 解壓版安裝教程 個(gè)人親測(cè)!
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 解壓版安裝教程,步驟簡(jiǎn)單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
MySQL在關(guān)聯(lián)復(fù)雜情況下所能做出的一些優(yōu)化
這篇文章主要介紹了MySQL在關(guān)聯(lián)復(fù)雜情況下所能做出的一些優(yōu)化,作者通過(guò)添加索引來(lái)不斷優(yōu)化查詢(xún)時(shí)間,需要的朋友可以參考下2015-05-05
mysql實(shí)現(xiàn)sequence功能的代碼
今天小編就為大家分享一篇關(guān)于mysql實(shí)現(xiàn)sequence功能的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
關(guān)于django連接mysql數(shù)據(jù)庫(kù)并進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建的問(wèn)題
這篇文章主要介紹了django連接mysql數(shù)據(jù)庫(kù)并進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
Jmeter連接數(shù)據(jù)庫(kù)過(guò)程圖解
這篇文章主要介紹了jmeter連接數(shù)據(jù)庫(kù)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
windows下MySQL數(shù)據(jù)庫(kù)移動(dòng)到其它盤(pán)
大家好,本篇文章主要講的是windows下MySQL數(shù)據(jù)庫(kù)移動(dòng)到其它盤(pán),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏2021-12-12
MySQL(基于GTID方式)實(shí)現(xiàn)主從復(fù)制和單主復(fù)制詳細(xì)教程
在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,主從復(fù)制是實(shí)現(xiàn)高可用性和數(shù)據(jù)冗余的重要手段,基于GTID的復(fù)制模式可以提供更強(qiáng)的復(fù)制一致性和簡(jiǎn)化故障轉(zhuǎn)移過(guò)程,本文將詳細(xì)介紹如何配置單主復(fù)制的GTID模式,以便在MySQL數(shù)據(jù)庫(kù)中實(shí)現(xiàn)穩(wěn)定可靠的數(shù)據(jù)復(fù)制,需要的朋友可以參考下2024-07-07
MySql通過(guò)ip地址進(jìn)行訪問(wèn)的方法
這篇文章主要介紹了MySql通過(guò)ip地址進(jìn)行訪問(wèn)的方法,首先要登錄mysql,切換數(shù)據(jù)庫(kù)然后授權(quán),具體代碼詳情大家參考下本文2018-06-06

