在添加外键后我无法删除行

时间:2015-12-28 22:17:22

标签: mysql foreign-keys foreign-key-relationship

我有两张表secondthird

second_id(PRIMARY KEY)  second_name           
   1                    .........
   2                    .......
   3                    .........

third_id(PRIMARY KEY) third_name second_id(FOREIGN KEY for second.second_id)
      1                  .....                 1
      2                  .....                 1
      3                  .....                 1
      4                  .....                 2
      5                  .....                 2

现在我要删除second second_id=2 DELETE FROM second WHERE second_id=2 )中的行,但它不起作用。它说 Successful 0 row(s) affected 更重要的是,它发生在我将一个外键附加到third.second_id之后(我在创建表后添加了外键)。

2 个答案:

答案 0 :(得分:4)

您必须使用second_id = 2删除uasort($item_date_converted, function ($a, $b) { return $a->getTimestamp() - $b->getTimestamp(); }); 表中的行,然后从third中删除id = 2或在外键约束中具有second的行

答案 1 :(得分:2)

您无法从500 <= period_count <= 2000删除一行,因为second中正在使用其中一个值。这是外键规则。

但是你可以将外键级联,因为如果你从third中删除一行,second中使用此值的所有行也将被删除,或者你可以将它们设置为{ {1}}。

This manual from MYSQL可以告诉您如何正确使用thirdnull,然后您可以为您选择最佳选项。 查找参考操作

编辑:

您无法将ON DELETE CASCADE添加到现有外键,因此您必须先删除它。

ON DELETE

然后

ON UPDATE