Postgresql将现有列添加到复合主键

时间:2016-04-07 07:03:50

标签: postgresql

我在postgresql中有一个带有复合主键的表。主键由两列命名:

DATETIME, UID

我有一个名为ACTION的另一个(非空)列已存在于此表中。如何将ACTION添加到复合主键?即:我希望表格的主键是三元组:

DATETIME, UID, ACTION

1 个答案:

答案 0 :(得分:16)

首先删除主键约束。您可以通过键入

来获取约束的名称
\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);