Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie aktualisiere ich eine Tabelle, um einen Primärschlüssel hinzuzufügen und alle vorhandenen Zeilen mit inkrementierten IDs zu aktualisieren?

Führen Sie nach dem Hinzufügen einer neuen ID-Spalte (noch nicht als Primärschlüssel festlegen und die automatische Inkrementierung nicht aktivieren) Folgendes aus:

SET @index = 1;
UPDATE tablename SET ID = (@index:[email protected]+1);

Dadurch wird ein inkrementierender ID-Wert, beginnend bei 1, für jede Ihrer vorhandenen Zeilen festgelegt, wodurch das Problem mit doppelten Schlüsseln gelöst wird, mit dem Sie konfrontiert würden, wenn Sie versuchen würden, eine neue Primärschlüsselspalte einzufügen, nachdem bereits Daten eingegeben wurden.

Sobald dies erledigt ist, können Sie die ID-Spalte als Primärschlüssel mit automatischer Inkrementierung festlegen.