您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Mysql表創建外鍵報錯怎么解決,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
數據庫表A:
CREATE TABLE task_desc_tab ( id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主鍵' AUTO_INCREMENT, <strong>taskname</strong> VARCHAR(200) NOT NULL COMMENT '任務名字', sqlname VARCHAR(20) NOT NULL COMMENT 'sql文件名字', params VARCHAR(5000) NOT NULL COMMENT '任務參數,格式為一個JSON字符串', updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '更新時間', detail VARCHAR(3000) COMMENT '任務一些描述信息,只是備注信息作用' ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
數據庫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;
目標:創建表使得表B中的taskname為外鍵,參考表A中的taskname字段,創建表發現報錯如下:
[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
經過排查找到問題原因: 表A中的taskname必須使用UNIQUE字段修飾,這樣保證記錄唯一性,當表B參考時候不會出現歧義。
看完上述內容,你們對Mysql表創建外鍵報錯怎么解決有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。