删除“在删除级联时”约束

时间:2018-07-24 20:38:58

标签: postgresql

在上一个命令中,我愚蠢地写道:

alter table UserInfo
add column gcal_id integer references GoogleCal on delete cascade

此后,我意识到自己不想要on delete cascade。如何更改gcal-id中的UserInfo,使其不再具有该约束,而又不会丢失当前条目中保存的信息?

1 个答案:

答案 0 :(得分:2)

很高兴,这很简单。

首先\d+ UserInfo查看约束名称,该名称将出现在表的列定义下方。

您的情况可能类似于

Foreign-key constraints:
    "userinfo_gcal_id_fkey" FOREIGN KEY (gcal_id) REFERENCES googlecal(id) ON DELETE CASCADE

然后,只需在一个命令中拖放并重新添加约束即可:

ALTER TABLE UserInfo
    DROP CONSTRAINT userinfo_gcal_id_fkey,
    ADD CONSTRAINT userinfo_gcal_id_fkey FOREIGN KEY (gcal_id) REFERENCES googlecal(id);

省略ON DELETE CASCADE部分。