POSTGRESQL- 将外键列指向另一个表

5
我正在使用psql,想要更改我的表中的某一列。 此时,该列是Table 2的外键,但我希望将其指向Table 3。
请问这是否可行,还是应该删除该列并添加一个新的列?
1个回答

7

不需要添加或删除列。您可以将约束从一个表中删除/禁用并将其添加到另一个表中。

执行前者的命令是:

alter table Table1 drop constraint if exists name_of_constraint_on_Table_1_column

执行后者的命令是:
alter table Table1
add constraint name_of_constraint_on_Table_1_column
foreign key (column) references Table3 (other_column) match full

如果你没有显式命名外键约束,则需要找到它的名称。你可以通过 \d 命令来实现:

\d Table1

您应该了解alter table,因为有很多可以更改表格的内容。

请注意,保留了html标签。

1
什么是match full?为什么不使用deferrable initially deferred呢? - Hassan Baig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接