【发布时间】:2011-01-21 10:40:45
【问题描述】:
我有一张表user_interactions,有 4 列:
user_1
user_2
type
timestamp
主键是(user_1,user_2,type)
我想改成(user_2,user_1,type)
所以我做的是:
drop primary key ...
add primary key (user_2,user_1,type)...
然后瞧……
问题是数据库在服务器上。
所以在我更新主键之前,已经有很多重复项已经潜入,而且它们还在不断蔓延。
怎么办?
我现在要做的是删除重复项并保留最新的timestamp(表中的一列)。
然后以某种方式再次更新主键。
【问题讨论】:
-
我突然为我暗中诅咒的每一个 DBA 感到难过...
-
下次添加与主键同列的唯一键,然后更新主键
-
@Ignacio,它存在于服务器上,但这是一个备份-备份服务器:-)。我不是 DBA,但我不会在真正的实时服务器上尝试这个东西 :-)
-
@knittl,是的,我现在就是这么想的,虽然很晚了:-)
-
@pixeline: 这是一个复合主键。
标签: mysql primary-key