gpt4 book ai didi

hibernate - ALTER TABLE 添加 ON DELETE CASCADE 语句

转载 作者:行者123 更新时间:2023-11-29 14:05:28 25 4
gpt4 key购买 nike

我想在 PostgreSQL 中执行以下操作(使用 Hibernate):

 ALTER TABLE fruits ADD CONSTRAINTS id ON DELETE CASCADE;

显然,我上面的代码不起作用,所以我正在寻找正确的语句。

如果我做不到,那么下面的怎么样:

我的表 fruits 中有一堆数据。 fruits 中的 id 字段被表 grapes 用作外键。我需要删除 fruits 中的特定行,我希望删除级联到 grapes 并删除 grapes 中具有指定 编号。我该怎么做?

delete from fruits where id = 1 cascade; 

注意:我不想在 grape 中加入和删除相应的数据。这只是一个例子。实际应用中有大量的表依赖于fruits

因为我用的是Hibernate,所以当我使用delete语句的时候,hibernate可以帮忙吗?
或者我可以使用 PostgreSQL 中的信息架构或系统目录来完成此操作吗?

最佳答案

你描述的是课本foreign key constraint使用 ON DELETE CASCADE 选项。

SQL 中,您可以在场景中创建表 grapes 时隐式创建它:

CREATE TABLE grapes (
grape_id int PRIMARY KEY
fruit_id int <b>REFERENCES fruits(fruit_id) ON DELETE CASCADE</b>
);

或者您可以稍后添加:

ALTER TABLE grapes
ADD CONSTRAINT grapes_fruit_id_fkey FOREIGN KEY (fruit_id)
REFERENCES fruits (fruit_id) ON DELETE CASCADE;

您不会为此直接编辑系统目录 - 您几乎不会这样做!那就是DDL像上面这样的陈述是为了。

请注意,外键约束需要引用列(在您的情况下为 fruits.fruit_id)上的唯一索引或主索引,并强制执行 referential integrity .

关于hibernate - ALTER TABLE 添加 ON DELETE CASCADE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532711/

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