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

m33*_*33n 5 database foreign-keys psql

我正在使用 psql,我想更改表中的一列。目前该列是表 2 的外键,但我想让它指向表 3。

这是可能的还是我应该删除该列并添加一个新列?

Hor*_*man 7

无需添加和删除列。您可以删除/禁用对一个表的约束,然后将其添加到另一表。

执行前者的命令是:

alter table Table1 drop constraint if exists name_of_constraint_on_Table_1_column
Run Code Online (Sandbox Code Playgroud)

执行后者的命令是:

alter table Table1
add constraint name_of_constraint_on_Table_1_column
foreign key (column) references Table3 (other_column) match full
Run Code Online (Sandbox Code Playgroud)

如果没有显式命名,则需要找到外键约束的名称。您可以通过以下\d命令执行此操作:

\d Table1
Run Code Online (Sandbox Code Playgroud)

您应该阅读有关内容,alter table因为您可以执行很多操作来更改表格。