我有2个表:SQL '加入' 2个主键1
PrimKey
001
002
和:
ID | ForeignKey
a | 001
b | 002
c | 002
我想删除,让我们说,排002和 '绑定' 的所有002外交键001,所以它看起来像:
PrimKey
001
和:
ID | ForeignKey
a | 001
b | 001
c | 001
FK约束不允许我执行UPDATE + DELETE。任何提示在哪里挖?
我有2个表:SQL '加入' 2个主键1
PrimKey
001
002
和:
ID | ForeignKey
a | 001
b | 002
c | 002
我想删除,让我们说,排002和 '绑定' 的所有002外交键001,所以它看起来像:
PrimKey
001
和:
ID | ForeignKey
a | 001
b | 001
c | 001
FK约束不允许我执行UPDATE + DELETE。任何提示在哪里挖?
你必须从另一个方向去做。更改第二个表中的行以指向第一个表中的不同PK;那么当没有对row002的引用时,可以将其删除。
我没想过,谢谢! –
你也可以试着做begin transaction
,update
,delete
和commit
。
如果您无法控制数据库架构,那么您必须像Jeremy指出的那样手动删除。
如果确实有控制权,可以在表之间添加外键关系,并在关系详细信息中添加“级联删除”约束。您可以通过使用外键转到表格的表格设计并右键单击以选择“关系”。然后选择“添加”并转到定义表格和列的部分。单击带有三个点的按钮,您将能够选择关系的父表,然后可以选择用于创建关系的列。最后,在关系屏幕中,找到插入/更新说明部分,在删除时指示“级联”。 (这里也有一个alter table语句,但有时使用GUI会更快。)
我认为他不想级联删除。他希望缺少一个更好的术语,将它们“合并”。 –
果然 - 我完全误解了。感谢您的澄清。 – user158017
您是否尝试过先更新然后删除为两个单独的步骤? –
@Hans,你说得对,我没有。我认为这应该有所帮助。 –