m33*_*33n 5 database foreign-keys psql
我正在使用 psql,我想更改表中的一列。目前该列是表 2 的外键,但我想让它指向表 3。
这是可能的还是我应该删除该列并添加一个新列?
无需添加和删除列。您可以删除/禁用对一个表的约束,然后将其添加到另一表。
执行前者的命令是:
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因为您可以执行很多操作来更改表格。