SQL AUTO INCREMENT


baham ko'ring

SQL AUTO INCREMENT maydoni

Avtomatik o‘sish maydoni - bu jadvalga yangi yozuv kiritilganda avtomatik ravishda noyob raqamni yaratadigan raqamli ustun.

Avtomatik o‘sish maydoni odatda biz xohlagan PRIMARY KEY maydonidir Har safar yangi yozuv kiritilganda avtomatik ravishda noyob raqam beriladi.


MySQL uchun sintaksis

MySQL avtomatik oshirish funksiyasini bajarish uchun AUTO_INCREMENT kalit so‘zidan foydalanadi.

Quyidagi SQL "Shaxs" ustunini "Shaxslar" jadvalidagi asosiy kalit maydonini avtomatik oshirish sifatida belgilaydi:

CREATE TABLE Persons (
    Personid int AUTO_INCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

AUTO_INCREMENT uchun standart boshlang‘ich qiymati 1 bo‘lib, har bir yangi yozuv uchun u 1 ga ortadi.

AUTO_INCREMENT boshqa qiymatdan boshlanishiga ruxsat berish uchun quyidagi SQL iborasidan foydalaning:

ALTER TABLE Persons AUTO_INCREMENT = 100;

"Shaxslar" jadvaliga yangi yozuv kiritganimizda, "Shaxs" ustuni uchun qiymat ko‘rsatish shart EMAS (noyob qiymat avtomatik ravishda qo‘shiladi):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

Yuqoridagi SQL "Shaxslar" jadvaliga yangi yozuv kiritadi va "Shaxs" ustuniga avtomatik ravishda keyingi noyob raqam beriladi.


SQL Server uchun sintaksis

SQL Server avtomatik oshirish funksiyasini bajarish uchun IDENTITY kalit so‘zidan foydalanadi.

Quyidagi SQL "Shaxs" ustunini "Shaxslar" jadvalidagi asosiy kalit maydonini avtomatik oshirish sifatida belgilaydi:

CREATE TABLE Persons (
    Personid int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

Yuqoridagi misolda IDENTITY uchun boshlang‘ich qiymati 1 ga teng va har bir yangi yozuv uchun u 1 ga ortadi.

Maslahat: “Shaxs” ustuni 10 qiymatdan boshlanib, 5 ga ortishi kerakligini belgilash uchun uni o‘zgartiring. IDENTITY(10,5)gacha.

"Shaxslar" jadvaliga yangi yozuv kiritganimizda, "Shaxs" ustuni uchun qiymat ko‘rsatish shart EMAS (noyob qiymat avtomatik ravishda qo‘shiladi):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

Yuqoridagi SQL "Shaxslar" jadvaliga yangi yozuv kiritadi va "Shaxs" ustuniga avtomatik ravishda keyingi noyob raqam beriladi.



MS Access uchun sintaksis

MS Access avtomatik oshirish funksiyasini bajarish uchun AUTOINCREMENT kalit so‘zidan foydalanadi.

Quyidagi SQL iborasi "Shaxs" ustunini "Shaxslar" jadvalidagi birlamchi kalit maydonini avtomatik oshirish sifatida belgilaydi:

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

AUTOINCREMENT uchun standart boshlang‘ich qiymati 1 bo‘lib, har bir yangi yozuv uchun u 1 ga ortadi.

Maslahat: “Shaxs” ustuni 10 qiymatidan boshlanishi va 5 ga oshishi kerakligini belgilash uchun avtomatik o‘sishni AUTOINCREMENT(10,5) ga o‘zgartiring.

"Shaxslar" jadvaliga yangi yozuv kiritganimizda, "Shaxs" ustuni uchun qiymat ko‘rsatish shart EMAS (noyob qiymat avtomatik ravishda qo‘shiladi):

INSERT INTO Persons (FirstName, LastName)
VALUES ('Lars', 'Monsen');

Yuqoridagi SQL "Shaxslar" jadvaliga yangi yozuv kiritadi va "Shaxs" ustuniga avtomatik ravishda keyingi noyob raqam beriladi.


Oracle uchun sintaksis

Oracle’da auto-increment maydonini SEQUENCE obyekti yordamida yaratish kerak (bu obyekt sonlar ketma-ketligini hosil qiladi).

Mana CREATE SEQUENCE sintaksisi:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

Yuqoridagi kod seq_person nomli SEQUENCE obyektini yaratadi, u 1 bilan boshlanadi va 1 ga ortadi. Shuningdek, u ishlash uchun 10 ta qiymatni keshlaydi. Kesh opsiyasi tezroq kirish uchun xotirada qancha ketma-ketlik qiymatlari saqlanishini belgilaydi.

"Shaxslar" jadvaliga yangi yozuv qo‘shganda, biz nextval funksiyasidan foydalanishimiz kerak (bu funksiya seq_person ketma-ketligidan keyingi qiymatni oladi):

INSERT INTO Persons (Personid, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');

Yuqoridagi SQL "Shaxslar" jadvaliga yangi yozuv kiritadi va "Shaxs" ustuniga seq_person ketma-ketligidan keyingi noyob raqam tayinlanadi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!