2010-02-27 61 views

回答

5

选择允许将null s插入到FK列中的记录,将其插入到那里,删除其他记录,然后删除第一个记录。

4

要么

ON DELETE CASCADE 

或插入为NULL的FK的如果多数民众赞成可能模式中的一个,不知道厂商不能提供更多的信息。

0

如果两个表彼此引用外键,那么数据库设计很可能需要改进。我想这应该调用一张额外的桌子来照顾这个设计。

对于您的问题,您可以更新一个表中的FK键字段为空,然后在两个表上触发删除。

但要做到这一点,请确保您确定两个PK提前将其删除。

黑毡帽

+0

数据库设计可能如预期的那样:您可以强制执行一条规则,即父级必须至少有一个子级,或者在父级行中将子行标记为“默认”。 – gbn 2010-02-28 09:13:58

1

如果你的列是允许为空,更新其数据,那么为NULL删除数据。

0
ALTER TABLE <table1> NOCHECK CONSTRAINT ALL 
GO 
ALTER TABLE <table2> NOCHECK CONSTRAINT ALL 
GO 

DELETE FROM <table1> 
GO 
DELETE FROM <table2> 
GO 

ALTER TABLE <table1> CHECK CONSTRAINT ALL 
GO 
ALTER TABLE <table2> CHECK CONSTRAINT ALL 
GO 
+1

可能要添加说明。 – Huey 2015-07-22 09:57:23

相关问题