Je souhaite remplacer les ID d'une table par une autre valeur unique. Ceci est un exemple simplifié:sql: modification de la clé primaire en une autre liste d'éléments uniques
CREATE TABLE IF NOT EXISTS test (
id int(11) NOT NULL,
reverse_id int(11) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY reverse_id (reverse_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO test (id, reverse_id) VALUES ('1', '2'), ('2', '1');
UPDATE test SET id = reverse_id;
# Duplicate entry '2' for key 'PRIMARY'
Je suis à la recherche d'une commande qui vérifie uniquement à la fin de la mise à jour du caractère unique des éléments d'identification. [Je sais que je peux créer une deuxième ligne et changer le statut de cette ligne en primaire, puis je peux mettre à jour les identifiants et réinitialiser le statut primaire, mais je veux avoir une commande, sans ajouter ou modifier d'autres lignes , tables]
Vous pouvez supprimer la clé primaire, mais MySQL créera simplement une clé primaire entière cachée, violant ainsi vos exigences. – Johan