我有两张表second
和third
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
之后(我在创建表后添加了外键)。
答案 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可以告诉您如何正确使用third
和null
,然后您可以为您选择最佳选项。
查找参考操作
编辑:
您无法将ON DELETE CASCADE添加到现有外键,因此您必须先删除它。
ON DELETE
然后
ON UPDATE