sql >> Databasteknik >  >> RDS >> Mysql

Jag vill återanvända luckorna i de raderade raderna

Det borde du verkligen inte. Primära nycklar bör vara rent tekniska, meningslösa värden. Deras värde, och generationens monotoni, borde inte spela någon roll alls.

Dessutom, eftersom det är PK för raden, kommer du potentiellt ha dussintals (eller tusentals) andra rader i andra tabeller som refererar till detta ID (främmande nycklar), så att ändra det i tabellen skulle inte vara tillräckligt:​​du skulle behöva ändra det överallt.

Och det finns en god chans att detta ID också refereras i andra applikationer (det kan till exempel vara en del av en bokmärkt webbadress i en webbläsare), och att ändra dess värde skulle göra alla dessa referenser ogiltiga.

Du bör aldrig ändra en primärnyckel. Det borde vara oföränderligt, för alltid.

EDIT:Jag läste fel frågan. Du vill faktiskt återanvända ett gammalt ID. Detta är också en dålig idé. Befintliga referenser skulle referera till något annat än de ursprungligen refererade till. Det här är vad som händer när du ändrar ditt telefonnummer och det återanvänds av någon annan, som börjar ta emot många samtal från människor som fortfarande tror att det här telefonnumret är ditt. Väldigt irriterande. Du vill undvika den här situationen.




  1. skicka masssms slutar i mitten

  2. SQLite trigger

  3. beräkna pris mellan givna datum

  4. Hur undviker man att lagra referenser för att ansluta till Oracle med JDBC?