【发布时间】:2014-10-06 11:22:55
【问题描述】:
我有“父”和“子”表。 'child' 表中有一个 'parent_id' 列,它是一个外键。 “父”表中的“id”列不是 NULL 和 INT。 'parent_id' 也是 INT 但默认为 NULL。 因此,当我使用 NULL 'parent_id' 向 'child' 添加新行时,我收到一条错误消息:
无法添加或更新子行:外键约束失败 (
db.child, CONSTRAINTchild_ibfk_1FOREIGN KEY (parent_id) REFERENCESparent(id) ON DELETE NO ACTION ON更新无操作)
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);
【问题讨论】:
-
请添加您使用的
create table语句和insert语句。 -
很奇怪,因为当我在 phpmyadmin 中做同样的事情时,我收到一条消息“处理请求中的错误”,尽管正在插入行。
-
这听起来更像是一个 phpMyAdmin 错误/问题。为什么不尝试不同的 SQL 客户端?
-
实际上,我在 php 上有一个网络应用程序,它连接到我的数据库。我有一个表格来添加一个孩子。当我使用 NULL 'parent_id' 提交时出现错误。所以也许这不是 phpmyadmin 的错误。
标签: mysql sql null sql-insert