在多对多关系中添加外键时出错

时间:2017-01-12 22:22:52

标签: mysql sql

有两个表:" personnes"

CREATE TABLE IF NOT EXISTS personnes(
id      INT UNSIGNED NOT NULL AUTO_INCREMENT,
nom      VARCHAR(40)  NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB;

和" listadresses"

CREATE TABLE  IF NOT EXISTS listadresses(
id      INT UNSIGNED NOT NULL AUTO_INCREMENT,
adresse VARCHAR(40)  NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB;

我无法根据子表的主键为每列添加外键以重现多对多的关系,我怎么能实现这种行为

CREATE TABLE  IF NOT EXISTS liaisons(
id_nom  INT UNSIGNED NOT NULL ,
id_adresse INT UNSIGNED NOT NULL ,
CONSTRAINT fk_nom FOREIGN KEY(id_nom) REFERENCES personnes(id),
CONSTRAINT fk_adresse FOREIGN KEY(id_adresse) REFERENCES listeadresses(id),
PRIMARY KEY(id_nom,id_adresse)
)ENGINE=InnoDB;

而不是我得到错误代码1215.无法添加外键约束,提前感谢任何见解!

1 个答案:

答案 0 :(得分:2)

这是您的问题:)

而不是:

REFERENCES listeadresses(id),

REFERENCES listadresses(id),

它无法添加外键,因为显然侦听不存在,但 listadresses 确实存在。