sql >> Database teknologi >  >> RDS >> Sqlserver

Nulstil primær nøgle (int som identitet)

Den maksimale værdi for en bigint er 9.223.372.036.854.775.807 . Hvis du var nået til 8 cifre på en dag, skulle du stadig bruge 10 dage til at nå max. Det svarer til 25 millioner år.

Forudsat at du stadig vil nulstille kolonnen, er det første spørgsmål, jeg har:er rækkefølgen af ​​rækker vigtig? Betyder, stoler du på det faktum, at række 1000 kommer før 1100 for f.eks. kronologisk eller på anden måde absolut rækkefølge? Hvis ikke, er det nemt:Slet kolonnen og tilføj den igen. Hej presto, nye værdier.

Hvis du har brug for at opretholde rækkefølgen, skal du gøre det lidt mere omhyggeligt:

  1. Lås bordet;
  2. Skift typen, så den ikke længere er automatisk stigning;
  3. Opret en ny kolonne. Det er bedst at sørge for, at det ikke har nogen indekser lige nu, da opdateringen af ​​indekset vil langsommere gør indsættelserne;
  4. Fyld værdierne i den anden med en løkke af en slags, der øger en tæller (som SQL Server rownum-tricket), der bestiller indsætningerne til at matche den oprindelige rækkefølge;
  5. Erstat den gamle kolonne med den nye;
  6. Nulstil automatisk stigning og primær nøglestatus.


  1. mySQL blob billeder udskrift?

  2. Brug af Jquery Ajax til at hente data fra Mysql

  3. GRUPPER BY kun rækker med en bestemt tilstand og dato

  4. Hvordan kan jeg vise forespørgselstiden i Perl, DBI?