Bosh sahifa Wiki Check constraint

Check constraint

Check constraintrow kiritilganda yoki yangilanganda Boolean predicate orqali qiymatlarning ruxsat etilgan qoidaga mosligini database darajasida tekshiradigan constraint. U invalid state’ni barcha yozuvchi applicationlardan qat’i nazar markaziy cheklaydi.

Predicate

Price manfiy emasligi yoki end_time start_time’dan keyinligi tekshirilishi mumkin. Bu qoida database engine tomonidan barcha yozuvchi clientlarga bir xil qo‘llanadi. Predicate deterministic va row doirasida bo‘lishi odatda ma’qul. Aniq semantika SQL mahsuloti, collation va transaction rejimiga bog‘liq. Murakkab cross-row invariant uchun unique, foreign key yoki trigger kerak bo‘lishi mumkin. Schema testi normal qiymat bilan birga NULL, duplicate va concurrent amalni qamraydi.

NULL semantikasi

SQL uch qiymatli mantiqda UNKNOWN ko‘pincha checkdan o‘tadi. Aniq semantika SQL mahsuloti, collation va transaction rejimiga bog‘liq. NULLni taqiqlash uchun NOT NULL alohida beriladi. Schema testi normal qiymat bilan birga NULL, duplicate va concurrent amalni qamraydi. value > 0 qoidasi NULLni avtomatik rad etmasligi mumkin. Bu qoida database engine tomonidan barcha yozuvchi clientlarga bir xil qo‘llanadi.

Qo‘llanish

Enumga o‘xshash kichik status to‘plami check bilan cheklanishi mumkin. Schema testi normal qiymat bilan birga NULL, duplicate va concurrent amalni qamraydi. Formatni regex bilan tekshirish semantic validityni to‘liq kafolatlamaydi. Bu qoida database engine tomonidan barcha yozuvchi clientlarga bir xil qo‘llanadi. Business qoida tez o‘zgarsa reference table boshqaruvga qulayroq bo‘lishi mumkin. Aniq semantika SQL mahsuloti, collation va transaction rejimiga bog‘liq.

Migration

Mavjud data yangi checkga mosligi deploymentdan oldin tekshiriladi. Bu qoida database engine tomonidan barcha yozuvchi clientlarga bir xil qo‘llanadi. Ba’zi tizim constraintni avval NOT VALID holatda qo‘shishga ruxsat beradi. Aniq semantika SQL mahsuloti, collation va transaction rejimiga bog‘liq. Validation katta jadvalda lock va IO ta’siri bilan rejalashtiriladi. Schema testi normal qiymat bilan birga NULL, duplicate va concurrent amalni qamraydi.

Schema boshqaruvi

Check constraint faqat ORM validationida qoldirilmaydi; invariant mos bo‘lsa database constraint yoki transaction bilan yakuniy qatlamda himoyalanadi. Constraint nomi migration, monitoring va API error mappingda barqaror identifikator bo‘lib xizmat qiladi. Mavjud data yangi qoidaga o‘tishdan oldin alohida audit qilinadi.

Katta jadvaldagi validation lock, IO va replication lagga ta’sir qilishi mumkin, shuning uchun bosqichli rollout tanlanadi. Failure test concurrent writerlar va rollbackni qamraydi. Check constraint buzilishi logda sensitive qiymatni ochmasdan, table, constraint va operation konteksti bilan qayd etiladi.

Chekka holatlar va dalillar

Incident tahlilida predicate bilan null semantikasi bir xil natija deb qaralmaydi. Bir qatlam muvaffaqiyatli ko‘rinsa ham keyingi qatlamdagi mapping, policy yoki data holati umumiy xizmatni buzishi mumkin. Shu sabab input, oraliq qaror va yakuniy output alohida log yoki metric bilan kuzatiladi. Bo‘sh qiymat, limitga yaqin hajm, duplicate operation, kechikkan javob va qisman nosoz dependency maxsus testlarda qamrab olinadi.

Check constraint uchun qo‘llanish hamda migration bo‘yicha kutilgan invariantlar yoziladi. Database constraint, NOT NULL, Unique constraint va Foreign key bilan integratsiya configuration yoki schema yangilanganda qayta tekshiriladi. Normal trafficdagi muvaffaqiyat recovery tayyorligini isbotlamaydi; rollback, rotation yoki rebuild amalda bajarilib ko‘riladi. Natija owner, versiya va source position bilan saqlansa, keyingi incidentda sababni taxmin bilan emas, tekshirilgan dalil orqali aniqlash mumkin.

Bog‘liq tushunchalar

Database constraint, NOT NULL, Unique constraint, Foreign key, Three-valued logic, Trigger, Validation, Domain