SQL AUTO INCREMENT utasítás (Adatbázismező értékének automatikus növelése)

Ebben a leckében bemutatjuk, hogy hogyan lehet egy adatbázis mezőjének az értékét automatikusan növelni. Ezt a megoldást az AUTO INCREMENT utasítással érhetjük el.

SQL alapok kezdőknek, SQL ismeretek kurzus borítókép

SQL AUTO INCREMENT utasítás (Adatbázismező értékének automatikus növelése)

Ebben a leckében bemutatjuk, hogy hogyan lehet egy adatbázis mezőjének az értékét automatikusan növelni. Azaz, ha felviszünk egy új rekordot, akkor nem kell a mező értékét kézzel kitölteni, hanem az adatbáziskezelő automatikusan kitölti (általában) eggyel nagyobb értékkel, mint az előző rekordét. Ezt a megoldást az AUTO INCREMENT utasítással érhetjük el.

Mi az az AUTO INCREMENT?

Az AUTO INCREMENT lehetővé teszi, hogy egy egyedi számot generáljunk egy új rekord hozzáadásakor. Az egyediséget úgy generálja, hogy nem mi töltjük ki az értékét és mindig az előző rekord értékénél eggyel nagyobbat generál. Emiatt gyakran használják elsődleges kulcsként, hiszen segítségével minden rekord hozzáadáskor automatikusan egyedi azonosítót hoz létre.

Ha a fenti leírás kacifántos lenne, akkor képzeljünk el egy teljesen üres táblát. Adjunk hozzá egy rekordot, amiben csak a nevet töltsük ki, az ID-t hagyjuk üresen, hiszen az egy AUTO INCREMENT mező.

IDTeljes név
1Horváth Tamás

Adjunk hozzá egy újabb rekordot, az ID-t szintén ne töltsük ki.

IDTeljes név
1Horváth Tamás
2Horváth Rozália

És ez így folytatódik minden rekord hozzáadásnál: nekünk elegendő csak a nevet hozzáadnunk, az ID-t magától rendeli hozzá.

AUTO INCREMENT a MySQL-ben

A MySQL adatbáziskezelőben az AUTO INCREMENT utasítást AUTO_INCREMENT néven találjuk meg.

MySQL AUTO_INCREMENT szintaxis

Fontos, hogy az AUTO_INCREMENT mezőnek számtípusúnak kell lennie, illetve elsődleges kulcsnak. Szimplán létrehozunk egy mezőt, megadjuk az adattípusát, majd a NOT NULL kikötést, illetve az AUTO_INCREMENT utasítást. Majd ezután elsődleges kulccsá tesszük a mezőt.

CREATE TABLE tábla (
    mező int NOT NULL AUTO_INCREMENT,


    PRIMARY KEY (mező)
);
Code language: SQL (Structured Query Language) (sql)

Ha megszeretnénk adni egy kezdőértéket, hogy honnan induljon az automatikus növekedés, akkor azt az ALTER TABLE segítségével tehetjük.

ALTER TABLE tábla AUTO_INCREMENT=érték;

Code language: SQL (Structured Query Language) (sql)

A tábla helyére a tábla neve, míg az érték helyére az a szám kerül, ahonnan a számlálást szeretnénk kezdeni.

MySQL AUTO_INCREMENT példa

Létrehozunk egy „vasarlok” táblát, amelyben a „vasarloID” mező elsődleges kulcs és AUTO_INCREMENT lesz.

SQL kód

CREATE TABLE vasarlok (
    vasarloID int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (vasarloID)
);
Code language: SQL (Structured Query Language) (sql)

INDENTITY az SQL Server-ben

SQL Serverek esetében az INDENTITY utasítást kell használni.

SQL Server INDENTITY szintaktika

Az INDENTITY utasításnak két paramétere van, mind a kettő helyre egy-egy számot vár. Elsőként egy kezdőértéket kell megadni, innen fog indulni a számlálás, másodikként pedig a növelés mértékét. Azaz, ha INDENTITY(10,5)-et adunk meg, akkor a számlálás tíztől fog indulni és ötösével fog növekedni.

CREATE TABLE tábla (
    mező int INDENTITY(szám,szám) PRIMARY KEY
);
Code language: SQL (Structured Query Language) (sql)

SQL Server INDENTITY példa

Létrehozunk egy „vasarlok” táblát, amelyben a „vasarloID” mező elsődleges kulcs és olyan mező lesz, amelynek értéke egyről indul és eggyel növekszik.

SQL kód

CREATE TABLE vasarlok (
    vasarloID int INDENTITY(1,1) PRIMARY KEY
);
Code language: SQL (Structured Query Language) (sql)

AUTOINCREMENT az MS Access-ben

MS Access adatbáziskezelőkben az AUTOINCREMENT utasítás használatos automatikus értéknöveléshez.

MS Access AUTOINCREMENT szintaktika

Az AUTOINCREMENT utasításnak két paramétere van, mind a kettő helyre egy-egy számot vár. Elsőként egy kezdőértéket kell megadni, innen fog indulni a számlálás, másodikként pedig a növelés mértékét. Azaz, ha INDENTITY(10,5)-et adunk meg, akkor a számlálás tíztől fog indulni és ötösével fog növekedni.

Ha elhagyjuk a két paramétert és a zárójeleket, akkor egytől indul és eggyel növekszik.

CREATE TABLE tábla (
    mező AUTOINCREMENT(szám,szám) PRIMARY KEY
);
Code language: SQL (Structured Query Language) (sql)

MS Access AUTOINCREMENT példa

Létrehozunk egy „vasarlok” táblát, amelyben a „vasarloID” mező elsődleges kulcs és AUTOINCREMENT lesz.

SQL kód

CREATE TABLE vasarlok (
    vasarloID AUTOINCREMENT PRIMARY KEY
);
Code language: SQL (Structured Query Language) (sql)

Ha hasznos volt számodra, akkor kérlek oszd meg másokkal is, hogy ezzel támogass minket!