我收到此错误代码,不知道为什么任何帮助将不胜感激 . 谢谢
错误代码:1452 . 无法添加或更新子行:外键约束失败( @USER
. meter
,CONSTRAINT meter_FK
FOREIGN KEY( location_code
)REFERENCES location
( code
)ON DELETE CASCADE ON UPDATE CASCADE)
CREATE TABLE meter (
`code` CHAR(5) NOT NULL,
`type` VARCHAR(30) NOT NULL,
description VARCHAR(30) NULL,
location_code CHAR(3) NOT NULL,
CONSTRAINT pri_meter
PRIMARY KEY (`code`),
CONSTRAINT meter_FK
FOREIGN KEY (location_code)
REFERENCES location (`code`) ON UPDATE CASCADE ON DELETE CASCADE );
INSERT INTO meter VALUES ('G1','Gas','Testing Unit','NULL');
INSERT INTO meter VALUES ('G2','Gas','NULL','U1');
INSERT INTO meter VALUES ('E1','Electric','NULL','U1');
INSERT INTO meter VALUES ('G3','Gas','NULL','U2');
INSERT INTO meter VALUES ('G4','Gas','NULL','U2');
INSERT INTO meter VALUES ('E2','Electric','NULL','U2');
INSERT INTO meter VALUES ('E3','Electric','NULL','C1');
1 回答
此实例中的外键(FK)是“location_code” . 您尝试插入的第一行数据具有空“location_code” .
FK要求您在相关表中具有匹配的主键 . (地点)
“位置”“代码”非常不可能作为值使用null - 如果没有匹配的FK值,则无法将数据插入“米”表 .
最简单的解决方案 - 替换第一个插入中的null: