2011-02-01 121 views
0

嗨 我有2个表A和B.A和B之间有1对1的关系。现在说我在A和B(A1和B1)中有记录通过这种1对1的关系是相关的。我将如何删除这两个记录。如果我删除A1 1st,那么我得到的冲突错误与B1相同。以1对1的关系删除这两个记录

我只是好奇

谢谢

+3

请提供架构信息,例如为表和外键创建表脚本。您的问题的答案可能是使用级联删除。 – 2011-02-01 10:47:21

+0

相同的不能去B1,除非你有循环FK的数据库不应该允许... – leppie 2011-02-01 11:02:38

+1

只是好奇。如何使用这种设置将数据添加到表格中?如果你不能添加,你将永远不需要删除。 – 2011-02-01 12:43:39

回答

0

模型表中的CAB之间的关系。 C将参考(FK)AB。要删除关系,请删除C中的相应行。那么是否也应删除实体A和/或B是一个单独的问题。

0

你用什么数据库,MSSQL Oracle,MySQL等?一些数据库支持级联删除(前两个我提到支持它肯定)。或者有另一种方法,使用触发器。把它挂在一个会触发第二个的删除,但首先关闭这两个表的一致性并最终打开它。

编辑:如果你使用的是MSSQL,那么你可以像这样设置级联删除。 (如果您的模式是类似于表A具有主键是在表B中的主/ foreighn键)

ALTER TABLE [dbo].[YourTable] WITH CHECK ADD CONSTRAINT  
[FK_YourTable1_YourTable2] FOREIGN KEY([YourForeignKey]) 
REFERENCES [dbo].[YourTable2] ([Id]) 
ON DELETE CASCADE 
GO