2

如何使用连接表的关系数据库删除值。

电影数据库示例:电影表 -> Movie_has_Genre 表 -> 流派表

如果我删除一部电影,我想删除 Movie_has_Genre 表中外键与电影表中的 id 相同的所有行。

我应该在电影表上使用触发器(在删除时......在关系表上删除)还是有其他内置函数来处理这个?

我只是模糊地记得有另一种方法可以做到这一点,但不记得它叫什么。

4

2 回答 2

2

您使用级联删除语句。它的语法如下所示:

ALTER TABLE dbo.T2
   ADD CONSTRAINT FK_T1_T2_Cascade
   FOREIGN KEY (keyId) REFERENCES dbo.T1(keyId) ON DELETE CASCADE

完整的语法是:这里

于 2013-08-30T04:16:10.137 回答
0

SQL Server 中有一个选项可以通过 CASCADE 设置自动执行此操作,如图所示。

这是一个非常方便的选项,但请确保不要将其应用于所有具有外键引用的表,因为它可能会导致数据意外丢失。确保彻底分析天气,这不会造成任何损害。

另一种选择是从首先引用的表开始使用多个删除语句。

于 2013-08-30T09:19:53.290 回答