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

标签 mysql sql null sql-insert

我有“父”表和“子”表。 “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, CONSTRAINT child_ibfk_1 FOREIGN KEY (parent_id) REFERENCES parent (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/

相关文章:

c# - 如果出现故障, "out"参数应该是什么?

java - Java 中的 Null 安全取消引用,如 ?.在 Groovy 中使用 Maybe monad

ruby - 。零?附加到数组时的值查询

php - 转换并插入两种日期格式MYSQL

mysql - 从仅较低的表中选择较低和较高的

mysql - 具有多个表的 Sphinxsearch sql_query

java - 使用模型 API 创建普通 JOOQ SQL 查询

mysql - 在 SQL Server 2005 中为 MySQL 数据库创建链接服务器

mysql - 更新 MySQL Blob 字段

sql - 我的查询在 SQL 中有效,但在 SSRS 中无效