Hvordan du bruker mysql auto-increment

Hvordan du bruker mysql auto-increment
Auto-increment er en veldig viktig attributt for MySQL. Når en tabell krever et numerisk felt som øker automatisk for å generere et sekvensielt nummer, brukes auto-increment-attributtet for det feltet. Auto-increment-feltet kan tilordnes som den primære nøkkelen eller den unike nøkkelen for en tabell hvis du krever. Dette feltet kan ikke lagre nullverdi. Så når Auto-Increment-attributtet er satt til et hvilket som helst felt i et tabell, vil ikke NULL-begrensningen settes automatisk for det feltet. Når nye poster trenger å sette inn i en tabell som inneholder auto-increment-feltet, trenger ikke brukeren å gi noen verdi for det feltet. Hvordan denne attributtet fungerer i MySQL -tabeller vises i denne artikkelen.

Funksjoner i Auto-Increment-feltet:

  • Den første posten av dette feltet starter alltid fra 1 som standard og økt med 1 når en ny post setter inn.
  • Hvis brukeren spesifiserer en bestemt numerisk verdi uten null for dette feltet på innsettingstidspunktet som ikke er i sekvensiell rekkefølge, vil en feilmelding bli generert av MySQL.
  • Hvis noen verdi av dette feltet oppdateres av en annen verdi som allerede eksisterer i tabellen, vil MySQL generere en feilmelding.
  • Hvis brukeren sletter de siste postene fra tabellen, vil det som vil være det nye sekvensielle nummeret avhengig av tabellens motor. InnoDB -tabell genererer aldri det tidligere genererte nummeret når en ny posterinnsats, men Myisam -tabellen genererer det siste sekvensielle nummeret som fjernes fra tabellen.
  • Last_insert_id () -funksjonen brukes til å hente verdien av antallet som genereres i den siste innsatsen.

Syntaks:

Lag tabell Tabell1
(
felt1 datatype auto_increment [primærnøkkel],
Field2 DataType [NULL | IKKE NULL ],
..
Fieldn DataType [NULL | IKKE NULL ],
);

Her, Felt1 er definert som auto-increment-felt, og datatypen til dette feltet kan være hvilken som helst numerisk datatype som Int eller Bigint. Det er ikke obligatorisk å definere auto-increment-feltet som den primære nøkkelen. Men det kan brukes som en primærnøkkel for å lage et forhold mellom to tabeller.

Forutsetning:

Kjør følgende SQL -kommandoer for å opprette en database som heter 'Newdb'og velg databasen for å lage tabeller med Auto-Increment-attributtet.

Opprette database newdb;
Bruk Newdb;

Lag en tabell med auto-increment:

Kjør følgende Opprett uttalelse for å lage en tabell som heter studenter hvor id Felt vil bli opprettet med Auto-Increment-attributt og settes som en primærnøkkel. Deretter vil to typer innsatsuttalelser bli utført. I den første innsatserklæringen nevnes ingen feltnavn i innsatsspørsmålet, og du må oppgi alle feltverdier for tabellen for denne typen innsetting. Her, null Verdien brukes til id felt. I den andre innsatserklæringen er alle felt bortsett fra at auto-increment-feltet er nevnt i innsatsspørsmålet fordi det vil bli generert automatisk. Deretter blir den utvalgte uttalelsen utført for å vise innholdet i studenter bord.

Lag bordstudenter (
id int usignert auto_increment,
Navn varchar (50) ikke null,
batch smallint ikke null,
Semester Smallint ikke null,
Primærnøkkel (ID)
);
Sett inn studenters verdier
(Null, 'Masrafi', 41, 9);
Sett inn studenter (navn, batch, semester) verdier
('Sakib', 43, 7);
Velg * fra studenter;

Du kan angi verdien av Auto-Increment-feltet manuelt, men du må opprettholde sekvensiell rekkefølge. Du kan ikke sette noen verdi lavere enn den siste innsatte verdien eller lik noen eksisterende verdi. Følgende første innsatserklæring vil fungere ordentlig fordi den siste innsatte verdien var 2. Den andre innsatserklæringen vil generere en feil fordi verdien 2 allerede eksisterer i tabellen.

Sett inn studenters verdier
(4, 'Robel', 41, 9);
Sett inn studenters verdier
(2, 'Manzarul', 41, 9);

Lag en tabell med automatisk increment og usignert Zerofill:

Det nevnte tidligere at auto-increment-feltet starter fra 1 som standard. Men hvis du bruker usignert Zerofill-attributt med auto-increment-feltet og angir lengden på tallet, vil nummeret bli generert med ledende null basert på lengden. Følgende CREATE -uttalelse vil lage en tabell som heter lærere Hvor auto-increment og usignerte Zerofill-attributter er satt til tch_id felt og lengden på feltet er satt til 4. Deretter vil noen data bli satt inn i tabellen ved å sette inn setningen, og SELECT -setningen vil vise alt innhold i tabellen.

Lag bordlærere (
TCH_ID MediumInt (4) Unsigned Zerofill Auto_Increment,
Navn varchar (50) ikke null,
Avdeling varchar (10) ikke null,
Primærnøkkel (TCH_ID)
);
Sett inn lærereverdier
(Null, 'Maria', 'CSE'),
(Null, 'Janifer', 'BBA'),
(Null, 'Micheal', 'Eng');
Velg * fra lærere;

Her vises det 0001, 0002 og 0003 genereres som TCH_ID -verdier.

Nå, hvis du sletter den siste posten og setter inn en ny post, vil et nytt nummer mer den slettede TCH_ID -verdien genereres som ny tch_id.

Slett fra lærere der tch_id = 3;
Sett inn lærereverdier
(Null, 'Mahmuda', 'CSE');
Velg * fra lærere;

Tilbakestillingsfelt:

Hvis alle poster blir slettet fra lærere tabell som inneholder auto-increment-feltet og deretter den nye Verdien av TCH_ID vil bli generert etter den siste innsatte verdien. Etter å ha kjørt følgende SQL -setninger, vil det bli vist at de nylig genererte tch_id er 0005 Fordi den siste innsatte verdien var 0004.

Slett fra lærere;
Sett inn lærereverdier
(Null, 'Lucy', 'Eee');
Velg * fra lærere;

Hvis du vil tilbakestille tabellen og starte verdien fra 1 igjen, må du utføre avkortet uttalelse i stedet for slettingserklæringen. Dette vises i de følgende tre uttalelsene.

Avkortere bordlærere;
Sett inn lærereverdier
(Null, 'Lucy', 'Eee');
Velg * fra lærere;

Du får følgende utdata etter å ha kjørt utsagnene.

Hvis du vil endre standardverdien for auto-increment-feltet, må du kjøre altererklæringen med å starte auto-increment-verdien. Deretter setter du inn en post og sjekk verdien av Auto-Increment-feltet. Her vil startverdien bli satt til 15.

Avkortere bordlærere;
Endre tabelllærere auto_increment = 15;
Sett inn lærereverdier
(Null, 'Lucy', 'Eee');
Velg * fra lærere;

Følgende utgang vises etter å ha kjørt ovennevnte SQL -setninger.

Konklusjon:

Formålet med Auto-Increment-attributtet blir forklart riktig ved å bruke eksempler i denne artikkelen for å hjelpe MySQL-brukeren til å forstå bruken av dette attributtet.