我有“父”表和“子”表。 “child”表中有一个列“parent_id”,它是外键。 “父”表中的“id”列不为 NULL 且为 INT。 'parent_id' 也是 INT 但默认为 NULL。 因此,当我使用 NULL 'parent_id' 添加新行到 'child' 时,我收到一条错误消息:
Cannot add or update a child row: a foreign key constraint fails (
db
.child
, CONSTRAINTchild_ibfk_1
FOREIGN KEY (parent_id
) REFERENCESparent
(id
) ON DELETE NO ACTION ON UPDATE NO ACTION)
CREATE DATABASE db;
USE db;
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT NULL,
parent_id INT NULL DEFAULT NULL,
CONSTRAINT child_ibfk_1 FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=INNODB;
INSERT INTO child (id, parent_id) VALUES (1, NULL);
最佳答案
已解决。问题出在我使用的 php 代码中。 sql语句没有问题。 谢谢大家!
关于Mysql 无法添加或更新子行 外键约束失败 ON DELETE NO ACTION ON UPDATE NO ACTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280425/