sql >> Databasteknik >  >> RDS >> Mysql

hur återanvänder man borttagna primärnycklar i mysql?

Använder:

ALTER TABLE [your table name here] AUTO_INCREMENT = 1

... återställer auto_increment-värdet till nästa baserat på det högsta befintliga värdet som finns i tabellen. Det betyder att den inte kan användas för att korrigera mellanrum på mer än ett.

Det enda skälet att göra detta skulle vara för kosmetiska - databasen bryr sig inte om poster är sekventiella, bara att de relaterar till varandra konsekvent. Det finns inget behov av att "korrigera" värdena för databasens skull.

Om du visar id värden för användaren, vilket är anledningen till att du vill att de alltid ska vara sekventiella, så rekommenderar jag att du lägger till en surrogatnyckel. Använd surrogatnyckeln för visning för användaren, så att värdena kan sekvenseras om efter behov men referensintegriteten påverkas annars opåverkad. Surrogatnyckeln i det här fallet skulle vara en heltalskolumn.



  1. Hur man krymper/rensar ibdata1-fil i MySQL

  2. Oracle:SQL-fråga för att hitta alla triggers som hör till tabellerna?

  3. JDBC-anslutningen misslyckades, fel:TCP/IP-anslutningen till värden misslyckades

  4. Problemuppsättning 1 – Identifiera enheter