我有一个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
(表中的一列)。
然后以某种方式再次更新主键。
16
我突然为每一个被诅咒的DBA感到难过……
—
Ignacio Vazquez-Abrams 2010年
下次添加与主键具有相同列的唯一键,然后更新主键
—
knittl 2010年
@Ignacio,它存在于服务器上,但这是备份-备份服务器:-)。我不是DBA,但我不会在真正的实时服务器上尝试这个问题:-)
—
simplfuzz 2010年
@knittl,是的,这就是我现在想的,尽管很晚了:-)
—
simplfuzz 2010年
@pixeline:这是复合主键。
—
伊格纳西奥·巴斯克斯