我在尝试创建下表时遇到问题:
CREATE TABLE autor
(
id_autor VARCHAR (2),
nom_autor VARCHAR (30),
rfc_autor VARCHAR (15),
pseudo_id VARCHAR (2),
PRIMARY KEY (id_autor),
FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor)
);
当我尝试运行以下脚本时:
INSERT INTO `revistas`.`autor` (`id_autor`, `nom_autor`, `rfc_autor`,`pseudo_id`) VALUES ('A3', 'Quijote','','A7');
MySQL显示:
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`revistas`.`autor`, CONSTRAINT `autor_ibfk_1` FOREIGN KEY (`pseudo_id`) REFERENCES `autor` (`id_autor`))
知道为什么吗?
非常感谢!
答案 0 :(得分:2)
我相信它应该是:
FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor)
答案 1 :(得分:1)
我认为您希望将引用返回主键:
CREATE TABLE autor (
id_autor VARCHAR (2),
nom_autor VARCHAR (30),
rfc_autor VARCHAR (15),
pseudo_id VARCHAR (2),
PRIMARY KEY (id_autor),
FOREIGN KEY (pseudo_id) REFERENCES autor(id_autor)
---------------------------------------------^
);
这适用于SQL Fiddle。