首页 文章

错误代码:1452 . 无法添加或更新子行:外键约束失败 - MYSQL

提问于
浏览
-3

我收到此错误代码,不知道为什么任何帮助将不胜感激 . 谢谢

错误代码:1452 . 无法添加或更新子行:外键约束失败( @USER . meter ,CONSTRAINT meter_FK FOREIGN KEY( location_code )REFERENCES locationcode )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 回答

  • 0

    此实例中的外键(FK)是“location_code” . 您尝试插入的第一行数据具有空“location_code” .

    FK要求您在相关表中具有匹配的主键 . (地点)

    “位置”“代码”非常不可能作为值使用null - 如果没有匹配的FK值,则无法将数据插入“米”表 .

    最简单的解决方案 - 替换第一个插入中的null:

    INSERT INTO meter VALUES ('G1','Gas','Testing Unit','U1');
    

相关问题