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

एक बाधा में अनुमत मूल्यों की सूची के लिए PostgreSQL क्वेरी?

आप सिस्टम कैटलॉग को क्वेरी कर सकते हैं pg_constraint , उदा.:

select consrc
from pg_constraint
where conrelid = 'requests'::regclass
and consrc like '(status%';

                                  consrc                                   
---------------------------------------------------------------------------
 (status = ANY (ARRAY['pending'::text, 'success'::text, 'failure'::text]))
(1 row) 

अनपैक करने के लिए निम्न फ़ंक्शन का उपयोग करें स्ट्रिंग:

create or replace function get_check_values(str text)
returns setof text language plpgsql as $$
begin
    return query
        execute format (
            'select * from unnest(%s)',
            regexp_replace(str, '.*(ARRAY\[.*\]).*', '\1'));
end $$;

select get_check_values(consrc)
from pg_constraint
where conrelid = 'requests'::regclass
and consrc like '(status%';

 get_check_values 
------------------
 pending
 success
 failure
(3 rows)    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल प्रतिकृति सेटअप और रखरखाव Ansible का उपयोग कर

  2. PostgreSQL:डेटाबेस छोड़ें लेकिन DB अभी भी है

  3. पोस्टग्रेज कनेक्शन प्राप्त करने के लिए धीमी गति से हाइबरनेट करें

  4. विंडोज़ में क्यूटी के साथ पोस्टग्रेस्क्ल libpq

  5. स्ट्रक्चरस्कैन के साथ संरचना में पोस्टग्रेस्क्ल सरणी प्राप्त करें