1. AUTO_INCREMENTi põhiülevaade
AUTO_INCREMENT
on MySQL-i atribuut, mis määrab andmebaasi tabelitele automaatselt unikaalsed identifikaatorid (ID-d). Seda kasutatakse peamiselt primaarvõtme seadistamisel ning andmete lisamisel suureneb unikaalne number automaatselt. See välistab vajaduse kasutajal ID-d käsitsi määrata, võimaldades andmeid tõhusalt hallata.
See funktsioon on laialdaselt kasutusel paljudes andmebaasirakendustes, nagu kasutajate registreerimissüsteemid ja tootekataloogid, kuna see võimaldab hõlpsalt kirjeid lisada, säilitades samal ajal andmete terviklikkuse. AUTO_INCREMENT
i kasutamisel tuleb pöörata tähelepanu selle andmetüübile. Näiteks INT
tüübi puhul on maksimumväärtus 2,147,483,647 ja selle ületamisel tekib viga.
2. Kuidas kontrollida AUTO_INCREMENTi väärtust
Kui soovite kontrollida tabeli järgmist AUTO_INCREMENT
i väärtust, kasutage käsku SHOW TABLE STATUS
. Allpool on näide:
SHOW TABLE STATUS LIKE 'tabeli_nimi';
Selle päringu käivitamisel kuvatakse tabeli erinevad olekuandmed. Veerust Auto_increment
kuvatav number on järgmise lisatava kirje ID. Näiteks kui tabeli nimi on users
:
SHOW TABLE STATUS LIKE 'users';
Tulemuse veeru Auto_increment
väärtus on järgmine kasutatav ID. See meetod on kasulik andmebaasiadministraatoritele, et mõista praegust AUTO_INCREMENT
i olukorda ja vajadusel kohandusi teha.
3. Kuidas muuta AUTO_INCREMENTi väärtust
Kui soovite muuta AUTO_INCREMENT
i väärtust, kasutage käsku ALTER TABLE
. Selle käsu abil saate määrata järgmise sisestatava kirje AUTO_INCREMENT
i väärtuse. Allpool on näide:
ALTER TABLE tabeli_nimi AUTO_INCREMENT = uus_väärtus;
Näiteks kui soovite määrata tabeli my_table
järgmise AUTO_INCREMENT
i väärtuseks 50:
ALTER TABLE my_table AUTO_INCREMENT = 50;
Pärast selle käsu käivitamist hakkavad uute sisestatavate kirjete ID-d alates 50. See toiming on kasulik, kui soovite, et uutel lisatavatel andmetel oleks teatud ID vahemik või kui soovite säilitada järjepidevust olemasolevate andmetega.
4. Kuidas muuta AUTO_INCREMENTi veergu
Olemasolevas tabelis AUTO_INCREMENT
i uuesti teise veergu seadistamiseks on vaja läbida mitu sammu. Esiteks tühistatakse praegune AUTO_INCREMENT
ja seejärel seadistatakse see uude veergu. Allpool on toodud sammud:
- Praeguse
AUTO_INCREMENT
i tühistamine - Uue veeru seadistamine
AUTO_INCREMENT
iks
Konkreetsed SQL-käskud on järgmised:
Esmalt tühistatakse praegune AUTO_INCREMENT
.
ALTER TABLE tabeli_nimi CHANGE veeru_nimi veeru_nimi andmetüüp NOT NULL;
ALTER TABLE tabeli_nimi DROP PRIMARY KEY;
Järgmisena seadistatakse uus veerg AUTO_INCREMENT
iks.
ALTER TABLE tabeli_nimi ADD PRIMARY KEY (uus_veeru_nimi);
ALTER TABLE tabeli_nimi CHANGE uus_veeru_nimi uus_veeru_nimi andmetüüp AUTO_INCREMENT;
Seega, AUTO_INCREMENT
i veeru muutmisel on vaja läbida kolm sammu: veeru muutmine, primaarvõtme muutmine ja AUTO_INCREMENT
i uuesti seadistamine.

5. Kuidas kustutada AUTO_INCREMENT
Kui soovite AUTO_INCREMENT
i seadistuse kustutada, tühistage esmalt praegune AUTO_INCREMENT
ja primaarvõtme seadistus. Sammud on järgmised:
AUTO_INCREMENT
i tühistamine- Primaarvõtme tühistamine
Täpsemalt kasutatakse järgmist SQL-i:
ALTER TABLE tabeli_nimi CHANGE veeru_nimi veeru_nimi andmetüüp NOT NULL;
ALTER TABLE tabeli_nimi DROP PRIMARY KEY;
See kustutab määratud veerust AUTO_INCREMENT
i atribuudi. Seda toimingut kasutatakse, kui AUTO_INCREMENT
i enam ei vajata või kui minnakse üle uuele disainile.
6. AUTO_INCREMENTi erijuhud ja lahendused
AUTO_INCREMENT
il on mitmeid erijuhte, mis võivad ebaõige käsitlemise korral põhjustada ootamatut käitumist.
6.1 Maksimumväärtuse ületamine
Kui AUTO_INCREMENT
i veerg on täisarvuline, on selle andmetüübil maksimumväärtus. Näiteks INT
tüübi puhul on maksimumväärtus 2,147,483,647. Selle maksimumväärtuse ületamisel tekib viga. Selle probleemi vältimiseks on võimalik vajadusel muuta veeru andmetüüpi suuremaks (nt BIGINT
).
6.2 Käitumine pärast andmete kustutamist
Kui AUTO_INCREMENT
i maksimumväärtusega andmed kustutatakse, siis seda väärtust uuesti ei kasutata. Näiteks kui teil on andmed ID-dega 1 kuni 10 ja kustutate ID 10 andmed, siis järgmisele sisestatavale andmele määratakse ID 11. Selle käitumise mõistmine on andmete terviklikkuse säilitamisel oluline.
6.3 Mitteseerianumber
AUTO_INCREMENT
i veerg genereerib tavaliselt järjestikuseid numbreid. Kuid andmete kustutamise, tagasipööramise või serveri taaskäivitamise tõttu võivad tekkida mitteseerianumbrid. See on tingitud AUTO_INCREMENT
i väärtuste vahemällu salvestamisest. Kui järjestikulisus on vajalik, tuleb andmebaasi disain ja seaded üle vaadata.
7. Kokkuvõte
AUTO_INCREMENT
on MySQLis mugav funktsioon unikaalsete identifikaatorite automaatseks genereerimiseks. Selle kasutamisel tuleb siiski olla ettevaatlik ning mõista erijuhtumeid ja jõudlusmõjusid. See artikkel on üksikasjalikult selgitanud AUTO_INCREMENT
i põhilisi kasutusviise, täpsemaid seadistusmeetodeid ja erijuhtumite lahendusi. Õige kasutamine muudab andmebaasi halduse ja toimimise tõhusamaks ja tulemuslikumaks.