Mysql表創(chuàng)建外鍵報(bào)錯(cuò)解決方案
數(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ù),格式為一個(gè)JSON字符串’, updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT ’更新時(shí)間’, 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)報(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)過排查找到問題原因: 表A中的taskname必須使用UNIQUE字段修飾,這樣保證記錄唯一性,當(dāng)表B參考時(shí)候不會(huì)出現(xiàn)歧義。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ORA-06512數(shù)字或值錯(cuò)誤字符串緩沖區(qū)太小異常詳解2. Window7安裝MariaDB數(shù)據(jù)庫及系統(tǒng)初始化操作分析3. Vista下安裝SQL Server 2005,附加數(shù)據(jù)庫報(bào)錯(cuò)4. Mybatis Plus 自定義方法實(shí)現(xiàn)分頁功能的示例代碼5. MySQL之高可用集群部署及故障切換實(shí)現(xiàn)6. oracle數(shù)據(jù)庫增量備份腳本7. MyBatis 實(shí)現(xiàn)批量插入和刪除中雙層循環(huán)的寫法案例8. MySQL中庫的基本操作指南(推薦!)9. 分享Sql Server 存儲(chǔ)過程使用方法10. SQL Server ISNULL 不生效原因及解決
