gpt4 book ai didi

SQL 'DELETE CASCADE'

转载 作者:行者123 更新时间:2023-11-29 12:01:15 27 4
gpt4 key购买 nike

我有一个表 B,它有表 A 的外键,现在我想在 A 上做一些“删除级联”的事情,但 PostgreSQL 不接受以下内容:

DELETE FROM ATable WHERE aid IN
(
DELETE FROM BTable WHERE aid IN
(
... [expression that depends on the entries in BTAble] ...
)
RETURNING aid
);

似乎只有 SELECT 可以在 IN () 子句中。我想有一些简单的(标准的 SQL,而不是特定于 PostgreSQL 的?)方法可以做到这一点?

编辑:当您遇到此类问题时,可以说某些东西的结构不正确吗?在我们的例子中,我有一种直觉,..[expr].. 中的命中应该在一个新的 CTAble 中,而不是作为 ATable 中的一个子集,但我不能真正指出任何设计支持这一点的范例。

最佳答案

这在 PostgreSQL 9.1 中是可能的,但我认为如果不定义级联约束,就没有办法做到这一点。

http://developer.postgresql.org/pgdocs/postgres/queries-with.html#QUERIES-WITH-MODIFYING

关于SQL 'DELETE CASCADE',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5676608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com