Mysql无法添加或更新子行,外键约束失败ON DELETE NO ACTION ON UPDATE NO ACTION

时间:2014-08-13 07:28:11

标签: mysql sql null sql-insert

我有'父母'和'孩子'表。 'child'表中有一列'parent_id',它是一个外键。 'parent'表中的'id'列是NOT NULL和INT。 'parent_id'也是INT但DEFAULT为NULL。 因此,当我使用NULL'parent_id'向'child'添加新行时,我收到一条错误消息:

  

无法添加或更新子行:外键约束失败(dbchild,CONSTRAINT child_ibfk_1 FOREIGN KEY(parent_id)参考parentid)在更新时不执行任何操作(

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);

2 个答案:

答案 0 :(得分:1)

解决。问题出在我使用的PHP代码中。在sql语句中没有问题。 谢谢大家!

答案 1 :(得分:0)

您可以使用

  

在不执行更新操作时将删除设置为空