sql >> Database >  >> RDS >> Mysql

Hoe werk ik een tabel bij om een ​​primaire sleutel toe te voegen en werk ik alle bestaande rijen bij met verhoogde ID's?

Na het toevoegen van een nieuwe ID-kolom (stel nog niet in als primaire sleutel en schakel automatische verhoging niet in) voer het volgende uit:

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

Dit stelt een oplopende ID-waarde in die begint bij 1 op elk van uw bestaande rijen, waardoor het probleem met dubbele sleutels wordt opgelost waarmee u te maken zou krijgen als u zou proberen een nieuwe primaire sleutelkolom in te voegen nadat de gegevens al zijn ingevoerd.

Zodra dit is gebeurd, kunt u de ID-kolom instellen als een primaire sleutel met automatische verhoging.



  1. SQL Server 2008- Tabelbeperkingen ophalen

  2. Dupliceer, kopieer of maak een back-up van tabellen in MySQL, MariaDB, Oracle, PostgreSQL, DB2 en SQLite met Create Table As SQL

  3. Ik heb mysql en apache superset setup op dockers en verbonden door een bridge-netwerk, wat zal de SQLAlchemy URI zijn?

  4. Database-ontwerp:samengestelde sleutel versus primaire sleutel met één kolom