postgresql 关于删除级联 [英] postgresql on delete cascade
问题描述
我有两张桌子:
TableY:
id, name, description
TableX:
id, name, y_id
我在 TableX
中添加了一个外键(y_id REFERENCING tableY id ON DELETE CASCADE
).当我从 TableX
删除时,TableY
id
仍然存在(理论上应该删除它).我想我误解了 ON DELETE CASCADE
选项的工作原理.谁能告诉我我做错了什么?
I have added a foreign key in TableX
(y_id REFERENCING tableY id ON DELETE CASCADE
).
When I delete from TableX
, the TableY
id
remains (while it theoritically should be deleted).
I guess I have misunderstood how the ON DELETE CASCADE
option works. Can anyone tell what I am doing wrong?
我也看到了这个ON DELETE CASCADE,但对我来说没有多大意义.
I saw this ON DELETE CASCADE as well but did not make much sense to me.
推荐答案
我猜你误会了.尝试删除 TableY
中的行,TableX
中的相应行将被级联删除.当您有次要相关表并希望通过从主表中删除父行来清理它们而不违反约束或留下垃圾时,此选项是必不可少的.
I guess you got misunderstanding. Try to delete row from TableY
and corresponding rows from TableX
will be cascade deleted. This option is indispensable when you have secondary related tables and would like to clean them all by deleting parent row from primary table without getting constraints violated or rubbish left.
这篇关于postgresql 关于删除级联的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!