La mise à jour de MySQL clé primaire

J'ai une table user_interactions avec 4 colonnes:

 user_1
 user_2
 type
 timestamp

La clé primaire est (user_1,user_2,type)

et je veux changer de (user_2,user_1,type)

Donc ce que j'ai fait :

drop primary key ...  
add primary key (user_2,user_1,type)...

et le tour est joué...

Le problème est que la base de données est en ligne sur un serveur.

Donc avant que je puisse mettre à jour la clé primaire, de nombreux doublons déjà répandue, et ils sont constamment sentir.

Quoi faire?

Ce que je veux faire maintenant, c'est de supprimer les doublons et de garder ceux avec la dernière timestamp (qui est une colonne de la table).

Puis en quelque sorte mise à jour de la clé primaire de nouveau.

  • J'ai soudain mal à l'aise pour chaque DBA j'ai maudit sous mon souffle...
  • la prochaine fois ajouter une clé unique avec les mêmes colonnes que la clé primaire, puis mise à jour de la clé primaire
  • tee hee
  • c'est en direct sur un serveur, mais c'est une copie de sauvegarde-backup server :-). Je ne suis pas administrateur, mais je ne vais pas essayer cette chose VRAIMENT sur un serveur live 🙂
  • oui c'est ce que je pensais maintenant, très tard, si 🙂
  • J'ai toujours pensé qu'un tableau pouvais avoir UN primary_key. Vous avez 3 ?!? Peut-être ce que vous voulez, c'est un PK et les index sur les 2 autres colonnes?
  • C'est un composé de la clé primaire.

InformationsquelleAutor dharm0us | 2010-02-26