Auto-increment
Ushbu qoʻllanmada siz PostgreSQL SERIAL
psevdo-turi va jadvallardagi avtomatik oʻsish ustunlarini aniqlash uchun SERIAL
psevdo-turidan qanday foydalanish haqida bilib olasiz.
PostgreSQL-da ketma-ketlik
butun sonlar ketma-ketligini hosil qiluvchi maxsus turdagi ma'lumotlar bazasi ob'ektidir. Ketma-ketlik
ko'pincha jadvalda asosiy kalit (primary key)
ustuni sifatida ishlatiladi.
Yangi jadval yaratishda ketma-ketlik SERIAL
psevdo-tipi orqali quyidagicha yaratilishi mumkin:
Id
ustuniga SERIAL
psevdo-turini belgilash orqali PostgreSQL quyidagilarni amalga oshiradi:
Birinchidan,
ketma-ketlik
ob'ektini yarating vaketma-ketlik
tomonidan yaratilgan keyingi qiymatni ustun uchun standart qiymat sifatida o'rnating.Ikkinchidan,
id
ustunigaNOT NULL
cheklovini qo'shing, chunkiketma-ketlik
har doim butun sonni hosil qiladi, bu esanull
bo'lmagan qiymatdir.Uchinchidan,
id
ustunigaketma-ketlik
egasini tayinlang; natijadaid
ustuni yoki jadvali tushirilganda ketma-ketlik ob'ekti o'chiriladi
Sahna ortida quyidagi bayonot:
Quyidagi bayonotlarga ekvivalentdir:
PostgreSQL quyidagi xususiyatlarga ega SMALLSERIAL
, SERIAL
va BIGSERIAL
uchta ketma-ket
psevdo-turlarini taqdim etadi:
SMALLSERIAL
2 bytes
1 to 32,767
SERIAL
4 bytes
1 to 2,147,483,647
BIGSERIAL
8 bytes
1 to 9,223,372,036,854,775,807
PostgreSQL SERIAL
misoli
SERIAL
misoliShuni ta'kidlash kerakki, SERIAL
so'zsiz ustunda indeks yaratmaydi yoki ustunni asosiy kalit ustuni sifatida qilmaydi. Biroq, buni SERIAL
ustuni uchun PRIMARY KEY
cheklovini belgilash orqali osonlik bilan amalga oshirish mumkin.
Quyidagi bayonot SERIAL
ustuni sifatida id
ustuni bilan fruits
jadvalini yaratadi:
Jadvalga qator qo'shganda ketma-ket ustunga standart qiymatni belgilash uchun siz ustun nomiga e'tibor bermaysiz yoki INSERT
iborasida DEFAULT
kalit so'zidan foydalanasiz.
Quyidagi misolga qarang:
yoki
PostgreSQL fruits
jadvaliga id
ustuni uchun qiymatlar 1 va 2 bo'lgan ikkita qatorni kiritdi.
Jadvaldagi SERIAL
ustunining ketma-ketlik nomini olish uchun siz pg_get_serial_sequence()
funksiyasidan quyidagi tarzda foydalanasiz:
Ketma-ketlik
tomonidan yaratilgan oxirgi qiymatni olish uchun currval()
funksiyasiga ketma-ketlik
nomini berishingiz mumkin. Misol uchun, quyidagi bayonot fruits_id_seq
obyekti tomonidan yaratilgan oxirgi qiymatni qaytaradi:
Agar siz jadvalga yangi qator qo'shganda ketma-ketlik
tomonidan yaratilgan qiymatni olishni istasangiz, INSERT
iborasida RETURNING id
bandidan foydalanasiz.
Quyidagi bayonot fruits
jadvaliga yangi qator qo'shadi va id ustuni uchun yaratilgan qiymatni qaytaradi.
Sequence generator
ishi tranzaksiya uchun xavfsiz emas. Bu shuni anglatadiki, agar ikkita bir vaqtning o'zida ma'lumotlar bazasi ulanishi ketma-ketlikdan keyingi qiymatni olishga harakat qilsa, har bir mijoz boshqa qiymatga ega bo'ladi.
Ushbu qo'llanmada siz PostgreSQL psevdo-tipi SERIAL
dan jadval uchun avtomatik o'sish ustunini yaratish uchun qanday foydalanishni o'rgandingiz.
Last updated