我有'父母'和'孩子'表。 'child'表中有一列'parent_id',它是一个外键。 'parent'表中的'id'列是NOT NULL和INT。 'parent_id'也是INT但DEFAULT为NULL。 因此,当我使用NULL'parent_id'向'child'添加新行时,我收到一条错误消息:
无法添加或更新子行:外键约束失败(
)db
。child
,CONSTRAINTchild_ibfk_1
FOREIGN KEY(parent_id
)参考parent
(id
)在更新时不执行任何操作(
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);
答案 0 :(得分:1)
解决。问题出在我使用的PHP代码中。在sql语句中没有问题。 谢谢大家!
答案 1 :(得分:0)
您可以使用
在不执行更新操作时将删除设置为空