假设我有一个名为“users”的表,如下所示:
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
| 1 | 'Sid' | 'Barrett' |
| 2 | 'Roger' | 'Waters' |
| 3 | 'Richard' | 'Wright' |
| 4 | 'David' | 'Gilmour' |
| 5 | 'Nick' | 'Mason' |
+----+------------+-----------+
每个“user”在多个表上有许多引用,这些表的列名“user\u id”与fk相同。
如果我需要删除一个元素,我相信这个过程是先删除关系(以避免“违反外键约束”错误),然后删除“users”表中的元素本身,对吗?
但是。。。是否有可能删除“user”元素及其在所有其他表上的所有引用?
我正在使用nodejs(express)和postgresql。如果答案很明显,请道歉,我是sql的新手。
非常感谢您的建议!!
1条答案
按热度按时间mitkmikd1#
是的,使用
on delete cascade
在外键上。现在当一个用户被删除时,他们所有相关的帖子也会被删除。
这将继续下去,例如,如果一个帖子有评论。。。
当用户被删除时,他们的帖子将被删除,这些帖子的评论也将被删除。这就是“层叠”部分。