PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql CHECK IN सूची बाधा के लिए कस्टम त्रुटि संदेश

यदि आप थोड़ी अलग चेक बाधा के साथ रह सकते हैं, तो आप निम्न कार्य कर सकते हैं:

मानों की जांच करने वाला फ़ंक्शन बनाएं:

create function check_zone(p_input text)
  returns boolean
as
$$
declare
  l_allowed text[] := array['Marine', 'Terrestrial'];
begin
  if p_input = any(l_allowed) then 
    return true;
  end if;
  raise 'The only allowed values are: %', array_to_string(l_allowed, ', ');
end;
$$
language plpgsql
immutable;

और फिर IN कंडीशन के बजाय उस फ़ंक्शन का उपयोग करें:

create table data
(
  management_zone text not null,
  CONSTRAINT check_zone CHECK (check_zone(management_zone))
);

निम्नलिखित सम्मिलित करें

insert into data values ('foo');

इसका परिणाम होगा:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डॉकर्स के साथ नोडजेएस पर पोस्टग्रेज के लिए ECONNREFUSED

  2. रेल में पोस्टग्रेज यूयूआईडी का उपयोग करते समय पीजी ::अमान्य टेक्स्ट प्रतिनिधित्व त्रुटि से बचें

  3. जूक्यू डीएसएलकॉन्टेक्स्ट के .close() को कॉल करते समय कनेक्शन कब बंद हो जाता है, यदि बिल्कुल?

  4. PostgreSQL में स्केल () फ़ंक्शन कैसे काम करता है

  5. पूर्वनिर्धारित मानों के साथ बहु-चयन के लिए रेल 4 फ़ील्ड प्रकार