如何在父级上设置空值时删除子级行(删除级联?)?将父记录设置为空以便删除子项:howto?
这是db设计。
表A [ID,b_id_1,b_id_2]
表B [ID,等领域...]
b_id_1和b_id_2可以是NULL
如果其中任何为空,则装置NO乙记录对应FK(有它们中的2)
所以(b_id_1,b_id_2)可以是(NULL,NULL),(100,空),(NULL,100_or_any_other_number)等
如何在一个SQL查询中将b_id_1(或b_id_2)设置为null并删除B中具有此ID的所有行?
什么FK设计应该适用于2表?
查询应该从表的角度来执行!
是的,如果我们使用“On delete set null”并从B表中删除记录,它将起作用。
但查询必须只触摸一个表!
然后你会发现,在mysql SQL语法中没有像“从一行中删除字段值”这样的语句。
我们只能将它设置为NULL。
这就是我需要的。
任何想法?
@codeholic我忘了添加一件重要的事情。查询应该从表格的角度来执行!是的,如果我们使用这个On delete set null并从B表中删除一条记录,它将起作用。但查询必须只触摸一张桌子! – EugeneP 2010-04-18 08:05:11
@EugeneP:我已经更新了我的答案。 – codeholic 2010-04-18 12:39:19
谢谢,这不是一个简单的问题,你的解决方案看起来很漂亮。 – EugeneP 2010-04-18 12:55:24