Postgresql将现有列添加到复合主键
我在postgresql中有一个带有复合主键的表。主键由两列组成,分别命名为:Postgresql将现有列添加到复合主键,postgresql,Postgresql,我在postgresql中有一个带有复合主键的表。主键由两列组成,分别命名为: DATETIME, UID 此表中已存在另一个名为ACTION的(非空)列。如何向复合主键添加操作?Ie:我希望得到的表主键是三元组: DATETIME, UID, ACTION 首先删除主键约束。您可以通过键入来获取约束的名称 \d my_table 并在索引下查找以下内容: "my_table_pkey" PRIMARY KEY, btree (datetime, uid) 通过执行以下操作放弃它: al
DATETIME, UID
此表中已存在另一个名为ACTION的(非空)列。如何向复合主键添加操作?Ie:我希望得到的表主键是三元组:
DATETIME, UID, ACTION
首先删除主键约束。您可以通过键入来获取约束的名称
\d my_table
并在索引下查找以下内容:
"my_table_pkey" PRIMARY KEY, btree (datetime, uid)
通过执行以下操作放弃它:
alter table my_table drop constraint my_table_pkey;
alter table my_table add constraint my_table_pkey primary key (datetime, uid, action);
然后通过执行以下操作创建新的复合主键:
alter table my_table drop constraint my_table_pkey;
alter table my_table add constraint my_table_pkey primary key (datetime, uid, action);
您需要删除并重新创建PKconstraint@horse谢谢我如何找到约束的名称?它是否有一个标准化的名称,如tablename_pkey,以实现自动化,或者我必须从与表相关的某种查询中手动推断它?在事务中!如果有其他桌子依赖它呢?