如何使用连接表的关系数据库删除值。
电影数据库示例: 电影表 - > Movie_has_Genre表 - >类型表
如果我删除了一部电影,我想删除所有的Movie_has_Genre表行,其中外键与电影表中的id相同。
我应该在Movie表上使用Trigger(在删除时...在关系表上执行删除)还是有其他内置函数来处理这个?
我只是模糊地回忆起有另一种方法可以做到这一点,但不记得它叫什么。
答案 0 :(得分:2)
您使用级联删除语句。它的语法如下:
ALTER TABLE dbo.T2
ADD CONSTRAINT FK_T1_T2_Cascade
FOREIGN KEY (keyId) REFERENCES dbo.T1(keyId) ON DELETE CASCADE
完整语法为:here
答案 1 :(得分:0)
SQL Server中有一个选项可以通过CASCADE设置自动执行此操作,如图所示。
这是一个非常方便的选项,但请确保不要将它应用于所有具有外键引用的表,因为它可能会导致意外的数据丢失。确保彻底分析天气,这不会造成任何损害。
另一种选择是从首先引用的表开始使用多个delete语句。