एक UNIQUE बाधा NULL के साथ कई पंक्तियों की अनुमति देती है मान, क्योंकि दो NULL मूल्यों को कभी भी समान नहीं माना जाता है।
इसी तरह के विचार CHECK . पर लागू होते हैं प्रतिबंध। वे अभिव्यक्ति को TRUE . होने देते हैं या NULL (बस नहीं FALSE ) फिर से, NULL मान चेक से आगे निकल जाते हैं।
इससे इंकार करने के लिए, कॉलम जरूरी परिभाषित किया जा सकता है NOT NULL . या इसे PRIMARY KEY बनाएं चूंकि पीके कॉलम परिभाषित हैं NOT NULL खुद ब खुद। विवरण:
साथ ही, बस boolean का उपयोग करें :
CREATE TABLE public.onerow (
onerow_id bool PRIMARY KEY DEFAULT TRUE
, data text
, CONSTRAINT onerow_uni CHECK (onerow_id)
);
CHECK boolean . के लिए बाधा इतनी आसान हो सकती है कॉलम। केवल TRUE अनुमति है।
आप REVOKE करना चाह सकते हैं
(या नहीं GRANT ) DELETE और TRUNCATE public . से विशेषाधिकार (और अन्य सभी भूमिकाएँ) एकल पंक्ति को कभी भी हटाए जाने से रोकने के लिए। पसंद:
REVOKE DELETE, TRUNCATE ON public.onerow FROM public;