1

我有 2 张桌子:

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。任何提示在哪里挖掘?

4

3 回答 3

3

你必须从另一个方向去做。将第二个表中的行更改为指向第一个表中不同的PK;然后当没有对 row002 的引用时,您可以将其删除。

于 2012-06-06T20:23:48.960 回答
0

你也可以尝试做begin transaction,update和.deletecommit

于 2012-06-06T20:24:49.020 回答
0

如果您无法控制数据库架构,则必须按照 Jeremy 的指示手动删除。

如果您确实有控制权,则可以在表之间添加外键关系,并在关系详细信息中添加“级联删除”约束。您可以通过使用外键转到表的表设计并右键单击选择“关系”来执行此操作。然后选择“添加”并转到定义表和列的部分。单击带有三个点的按钮,您将能够选择关系的父表,然后您可以选择用于创建关系的列。最后,在关系屏幕中,您可以找到插入/更新规范部分以指示删除时的“级联”。(对此也有一个 alter table 语句,但有时使用 GUI 会更快。)

于 2012-06-06T20:34:49.490 回答