Ich habe eine Mysql-Tabelle mit einem einzigen Primärschlüssel (genannt pkey), der automatisch inkrementiert, und ich möchte eine Zeile klonen, wobei alle Daten gleich bleiben, mit Ausnahme des Primärschlüssels, der der nächste verfügbare Wert werden sollte, wie durch Autoinkrement definiert.
Meine erste Frage ist, ist die folgende Abfrage möglich?
UPDATE `table` SET pkey='next_available_primary_key' WHERE pkey='old_primary_key'
wenn versucht haben
UPDATE `table` SET pkey=null WHERE pkey='old_primary_key'
Dabei wird jedoch nur der Wert des Primärschlüssels auf Null gesetzt. Vielen Dank im Voraus für jede Hilfe/Vorschläge.
UPDATE:
Ich denke, ich sollte hinzufügen, dass ich nicht wirklich zwei Kopien der Daten in der Tabelle möchte. Ich möchte nur den Primärschlüssel ändern. Also, wenn ich INSERT SELECT verwenden würde, müsste ich mit ON DUPLICATE KEY UPDATE pkey='next_available_primary_key' kompensieren, ich bin mir nur nicht sicher, wie man das macht...
0 Stimmen
Nur so aus Neugier: Was ist Ihr Ziel? Es könnte nämlich sein, dass Sie den Primärschlüssel für ein Ziel missbrauchen (z. B. zum Ordnen von Daten), für das er nicht vorgesehen ist.