Last updated
Last updated
Ushbu qo'llanmada siz PostgreSQL CHECK cheklovlari va ulardan mantiqiy ifodaga asoslangan jadval ustunlaridagi qiymatlarni cheklash uchun qanday foydalanish haqida bilib olasiz.
PostgreSQL-da CHECK
cheklovi ustun yoki ustunlar guruhidagi qiymatlar ma'lum bir shartga javob berishini ta'minlaydi.
Tekshirish cheklovi ma'lumotlar bazasi darajasida ma'lumotlar yaxlitligi qoidalarini qo'llash imkonini beradi. Tekshirish cheklovi qiymatlarni baholash uchun mantiqiy ifodadan foydalanadi va jadvalga faqat haqiqiy ma'lumotlar kiritilishi yoki yangilanishini ta'minlaydi.
Odatda, CREATE TABLE
iborasidan foydalanib, jadval yaratishda chek cheklovini yaratasiz:
Ushbu sintaksisda:
Birinchidan, CONSTRAINT
kalit so'zidan keyin cheklov nomini belgilang. Bu ixtiyoriy. Agar siz uni o'tkazib yuborsangiz, PostgreSQL avtomatik ravishda CHECK
cheklovi uchun nom yaratadi.
Ikkinchidan, cheklovning haqiqiy bo'lishi uchun bajarilishi kerak bo'lgan shartni aniqlang.
Agar CHECK
cheklovi faqat bitta ustunni o'z ichiga olsa, uni quyidagi kabi ustun cheklovi sifatida belgilashingiz mumkin:
Odatiy bo'lib, PostgreSQL quyidagi formatdan foydalangan holda CHECK
chekloviga nom beradi:
CHECK
cheklovlarini qo'shishMavjud jadvalga CHECK
cheklovini qo'shish uchun siz ALTER TABLE ... ADD CONSTRAINT
iborasidan foydalanasiz:
CHECK
cheklovlarini olib tashlashCHECK
cheklovini olib tashlash uchun siz ALTER TABLE ... DROP CONSTRAINT
iborasidan foydalanasiz:
CHECK
cheklash misollariKeling, CHECK
cheklovlaridan foydalanishning ba'zi misollarini ko'rib chiqaylik.
CHECK
cheklovini aniqlashCHECK
cheklovlari bilan employees
deb nomlangan yangi jadval yarating:Ushbu bayonotda, employees
jadvalida ish haqi ustunidagi qiymatlarni noldan kattaroq qilib qoʻyadigan bitta CHECK
cheklovi mavjud.
Ikkinchidan, employees
jadvaliga salbiy ish haqi bilan yangi qator qo'shishga harakat qiling:
Xato:
Qo'shish muvaffaqiyatsiz tugadi, chunki salary
ustunidagi CHECK
cheklovi faqat ijobiy qiymatlarni qabul qiladi.
CHECK
cheklovlarini qo'shishBirinchidan, employees
jadvaliga CHECK
cheklovini qo'shish uchun ALTER TABLE ... ADD CONSTRAINT
iborasidan foydalaning:
CHECK
cheklovi qo'shilgan sana tug'ilgan kundan kechroq bo'lishini ta'minlaydi.
Ikkinchidan, employees
jadvaliga yangi qatorni qo'shilgan sana tug'ilgan kundan oldinroq kiritishga harakat qiling:
Chiqish:
Chiqish ma'lumotlarning "joined_date_check"
chek cheklovini buzganligini ko'rsatadi.
CHECK
cheklovlarida funksiyalardan foydalanishQuyidagi misolda ismning kamida 3 ta belgidan iborat boʻlishini taʼminlash uchun CHECK
cheklovi qoʻshilgan:
Ushbu misolda biz TRIM()
va LENGTH()
funksiyalari yordamida shartni aniqlaymiz:
Birinchidan, TRIM()
funksiyasi birinchi_nomdan oldingi va keyingi bo'shliqlarni olib tashlaydi.
Ikkinchidan, LENGTH()
funksiyasi TRIM()
funksiyasi natijasining belgilar uzunligini qaytaradi.
Butun LENGTH(TRIM(first_name)) >= 3
iborasi birinchi nomda uch yoki undan ortiq belgidan iborat boʻlishini taʼminlaydi.
Quyidagi bayonot muvaffaqiyatsiz bo'ladi, chunki u employees
jadvaliga 2 ta belgidan iborat birinchi ismli qator qo'shishga harakat qiladi:
Xato:
CHECK
cheklash misolini olib tashlashQuyidagi bayonot employees
jadvalidan joined_date_check
CHECK
cheklovini olib tashlaydi:
Boolean ifodaga asoslangan ustunlar qiymatlarini tekshirish uchun PostgreSQL CHECK
cheklovidan foydalaning.
©