我有3张桌子(我只提及所需的属性):
导入
id
,date
import_head
id
,import_id
import_body
id
,import_head_id
import_head
和import_body
创建一个导入项,导入由数十个导入项创建
关系:导入 1 < ==> N * import_head * 1 < ==> 1 * import_body *(每个关系上的ON DELETE CASCADE)
如何在从导入表中删除行时删除所有导入项目?
使用DELETE FROM import WHERE id = ?
删除导入时会抛出错误:SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
- import_head_id
提前多多感谢
答案 0 :(得分:0)
修改子表中的外键并在删除时进行(CASCADE)
这应该适合你
答案 1 :(得分:0)
在从主键表中删除记录之前,您需要删除关联表的记录。我个人会因为性能影响而避免cascade
删除,但这是您的决定。 Here is a thread正在讨论cascade
的问题。
答案 2 :(得分:0)
我在DB中更改了实体,所以现在只有两个表:
import
import_item
我没有找到更好的东西,但它确实有用。