[英]Cannot add foreign key constraint 4
錯誤1215:無法添加外鍵約束
CREATE TABLE IF NOT EXISTS `mydb`.`proba` (
`key` VARCHAR(255) NOT NULL,
`value` VARCHAR(255) NOT NULL,
PRIMARY KEY (`key`, `value`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `mydb`.`zavisnost` (
`key` VARCHAR(255) NOT NULL,
`value` VARCHAR(255) NOT NULL,
PRIMARY KEY (`key`, `value`),
CONSTRAINT `fk_zavisnost_proba1`
FOREIGN KEY (`key`)
REFERENCES `mydb`.`proba` (`value`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我不明白為什么會出現此錯誤。 請有人幫助...在此先感謝..
要在列上定義foreign key
,必須為其父引用字段建立索引。
根據有關foreign key
約束的文檔:
參考tbl_name(index_col_name,...)
在表proba
value
上定義一個INDEX
,它應該可以工作。
CREATE TABLE IF NOT EXISTS `mydb`.`proba` (
`key` VARCHAR(255) NOT NULL,
`value` VARCHAR(255) NOT NULL,
KEY ( `value` ), -- <-------- this line was missing
PRIMARY KEY (`key`, `value`))
ENGINE = InnoDB;
一旦在父列上定義了KEY
, zavisnost
表中的外鍵列就可以引用它。
...
FOREIGN KEY (`key`)
REFERENCES `mydb`.`proba` (`value`)
...
參考 :
[CONSTRAINT [符號]]外鍵
[index_name](index_col_name,...)
參考tbl_name(index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]reference_option:
限制| 級聯| SET NULL | 不采取行動
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.