sql >> Database teknologi >  >> RDS >> Mysql

Sådan ændres automatisk stigningsværdi af MySQL / MariaDB-database

Næsten alle databasetabeller har en unik kolonne, der fungerer som identifikator og har en værdi, der automatisk stiger efter databasemotor for hver ny post. Den automatiske stigningsværdi er gemt i tabellernes skema i databasen og kan normalt ikke ændres. De næste automatiske inkrementeringssekvensnumre beregnes automatisk af databasen og indsættes i tabellen sammen med posterne.

Denne vejledning viser dig, hvordan du ændrer auto_increment-værdien til et tal, som du ønskede i MySQL eller MariaDB. For eksempel at starte den automatiske stigningsværdi fra et større tal på 100 i stedet for 1 (standard for ny tabel).

Metode 1:Skift tabel

Kør følgende forespørgsel:

ALTER TABLE tbl_name AUTO_INCREMENT = x;

Erstat tbl_name med faktisk tabelnavn og x med et nummer, du foretrækker, såsom 7.

Bemærk Kørsel af "ALTER TABLE"-forespørgslen kan forårsage genopbygning af hele tabellen for nogle MySQL-versioner, så brug med omhu for store databaser.

Metode 2:Indsæt automatisk stigningsværdi

Kør følgende forespørgsel:

BEGIN WORK;
INSERT INTO tbl_name (ID) VALUES (x);
ROLLBACK;

Erstat tbl_name med faktisk tabelnavn, ID med det faktiske kolonnenavn, som har auto_increment-attributten, og x med et nummer, du foretrækker, såsom 7.

Forespørgslerne ovenfor narre MySQL- eller MariaDB-databasen til at bruge en tvungen auto_increment-værdi, som den vil huske som den aktuelle og seneste auto_increment-sekvens, der skal bruges til næste transaktion. Begynd og rul tilbage sørg for, at transaktionen slet ikke er indsat i databasen. Bemærk, at du også skal tilføje andre obligatoriske kolonner og værdier til "INSERT INTO"-forespørgslen ovenfor, for at det virker.


  1. oracle systimestamp (sysdate) til millisekunder

  2. Returner sæt af post (virtuel tabel) fra funktion

  3. Hvordan udfører du SQL fra et bash-script?

  4. MySQL DEGREES() Funktion – Konverter fra radianer til grader