问题标签 [cascade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3361 浏览

sql-server - 执行级联删除的嵌套 SQL Server 事务

假设我有一个名为 Companies 的表,它有一个 DepartmentID 列。还有一个包含 EmployeeID 列的部门表。当然,我也有一个 Employee 表。问题是我想删除一家公司,所以首先我必须删除每个部门的所有员工,然后是公司中的所有部门。级联删除不是一个选项,因此我希望使用嵌套事务。我是 SQL 新手,非常感谢您的帮助。

0 投票
15 回答
104626 浏览

sql-server - 何时/为什么在 SQL Server 中使用级联?

在 SQL Server 中设置外键时,在什么情况下应该在删除或更新时级联,其背后的原因是什么?

这可能也适用于其他数据库。

我最关注的是每种场景的具体示例,最好是来自成功使用它们的人。

0 投票
2 回答
361 浏览

sql - 在运行时覆盖从无操作到级联的约束

我觉得我有一个非常基本/愚蠢的问题,但我从来没有看到/读过/听到这个方向的任何东西。

假设我有一个表users(userId, name)和一个表首选项(id, userId, language)。该示例很简单,但可以扩展到具有多级关系和更多表的情况。
当我的 UI 请求删除用户时,我首先想显示一个警告,说明其首选项也将被删除。如果在某个时候数据库扩展了更多的表和关系,但软件没有相应地调整(客户端没有更新),则应该显示一条通用消息。

我该如何实施?UI 不知道整个数据结构,也不应该费心去遍历所有关系来手动删除所有依赖记录。

我认为这将受到限制。
约束最初不会是任何动作,因此约束会抛出一个可以被 UI 捕获的错误。UI 收到确认后,约束应该变成cascade

不知怎的,我觉得我把这一切都弄错了..

0 投票
3 回答
3931 浏览

sql - CASCADE Delete 是否作为事务执行?

我想对数据库中的某些表执行级联删除,但我对删除某些内容失败时会发生什么感兴趣。一切都会回滚吗?

0 投票
13 回答
41487 浏览

sql-server - 在 SQL Server 2005 中,我可以在不设置表属性的情况下进行级联删除吗?

我有一个充满客户数据的数据库。它太大了,操作起来真的很麻烦,我宁愿把它缩小到 10% 的客户,这对于开发来说已经足够了。我有很多表,我不想用“ON DELETE CASCADE”来改变它们,特别是因为这是一次性交易。

我可以在不先设置它们的情况下执行级联所有表的删除操作吗?如果没有,我最好的选择是什么?

0 投票
3 回答
34286 浏览

java - 休眠删除级联

我有一个实体 [项目],其中包含一组其他实体 [问题]。

我已经用“all-delete-orphan”的级联属性映射了关系。

在我的数据库中,关系映射到问题表上的 project_id (FK) 字段。此字段不能为空,因为我不想要没有项目的问题。

当我这样做时session.delete(project),它会抛出一个异常,说project_idcant be null,但是如果我删除not-null对该字段的约束,则删除效果很好。

任何人都知道如何解决这个问题?

0 投票
2 回答
1455 浏览

sql-server - 如何在表上级联重命名 PK,MS SQL 2005

我已经成功地重命名了一个表,并通过外键关系删除了该表上的所有约束,并将它们全部备份。但是,现在我正处于 PK_tblFoo 存在多个位置的地步(当我将表转移到另一个数据库时)。重命名表不会重命名主键。

我将如何级联重命名主键?我已经重命名了表格,我只需要弄清楚这部分。

0 投票
4 回答
1982 浏览

sql - 合并主键 - 级联更新

有没有办法将两个主键合并为一个,然后级联更新所有受影响的关系?这是场景:

客户(idCustomer int PK、Company varchar(50) 等)

CustomerContacts(idCustomerContact int PK、idCustomer int FK、Name varchar(50) 等)

CustomerNotes(idCustomerNote int PK、idCustomer int FK、注释文本等)

有时客户需要合并为一个。例如,您有一个 id 为 1 的客户和另一个 id 为 2 的客户。您想要合并两者,以便所有 2 的内容现在都为 1。我知道我可以编写一个脚本来更新所有受影响的表一,但我想通过使用级联规则使其更具未来性,因此我不必每次添加新关系时都更新脚本。

有任何想法吗?

0 投票
4 回答
34929 浏览

sql - Postgres 外键“更新时”和“删除时”选项如何工作?

任何人都可以对这些功能的作用以及何时使用它们提供清晰的解释/示例吗?

0 投票
2 回答
58444 浏览

sql - 我应该使用 CASCADE DELETE 规则吗?

重复:何时/为什么在 SQL Server 中使用级联?

我一直不敢使用 DELETE CASCADE,但是随着我变得更加自信(懒惰:D),我在想它有多糟糕,是使用它的最佳做法还是应该避免它并清理我的外键等老式方式(使用存储过程)?