【问题标题】:MySql Update and Set null to field with foreign key to other tableMySql 更新并将 null 设置为具有其他表的外键的字段
【发布时间】:2015-02-12 16:24:52
【问题描述】:

我有这样的表格:

Notes
ID | NAME | CATEGORY
1  | test | 1
2  | test2| 2

Notes Category
ID | NAME | COUNT
1  | tCat | 1
2  | tCat2| 1

我有外键CATEGORY <-> Notes Category.ID

我尝试更新 Notes 中的第一条记录并将 null 设置为 CATEGORY,因为我想要没有类别的笔记,但我得到了错误:

SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败

【问题讨论】:

  • 您的 Notes CATEGORY 列是否有“NOT NULL”约束?如果是这样,那可能就是原因。
  • 没有 CATEGORY 列只有无符号
  • these answers 你在找什么吗?
  • 好吧,如果我不得不猜测,那是您尝试使用与 Notes Category 表中的任何 ID 都不对应的 CATEGORY 值更新 Notes 表。
  • 是的,但如果我尝试在 phpmyadmin 中编写查询并使用 SET CATEGORY = NULL 它就可以了

标签: php mysql


【解决方案1】:
ALTER TABLE `Notes` DROP FOREIGN KEY Notes_ibfk_1;
UPDATE `Notes` SET CATEGORY = NULL WHERE ID = 1;
ALTER TABLE `Notes` ADD FOREIGN KEY -- http://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html

【讨论】:

    【解决方案2】:

    尝试在 NOTES 表中将 CATEGORY 明确声明为 INT NULL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多