我在postgresql中有一个带有复合主键的表。主键由两列命名:
DATETIME, UID
我有一个名为ACTION的另一个(非空)列已存在于此表中。如何将ACTION添加到复合主键?即:我希望表格的主键是三元组:
DATETIME, UID, ACTION
答案 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);