mysql创建外键的表_Mysql表创建外键报错解决方案
Mysql表創建外鍵報錯解決方案,字段,名字,數據庫,更新時間,歧義
Mysql表創建外鍵報錯解決方案
易采站長站,站長之家為您整理了Mysql表創建外鍵報錯解決方案的相關內容。
數據庫表A:
CREATE TABLE task_desc_tab
(
id INT(11) PRIMARY KEY NOT NULL COMMENT '自增主鍵' AUTO_INCREMENT,
taskname 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,
taskname 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表創建外鍵報錯解決方案的詳細介紹。歡迎大家對Mysql表創建外鍵報錯解決方案內容提出寶貴意見
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的mysql创建外键的表_Mysql表创建外键报错解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 外键有啥用途_Mysql外键
- 下一篇: mysql中用户管理_mysql 中用户