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

PostgreSQL में बाधा उत्पन्न करते समय JSON सरणी के सभी तत्वों को संबोधित करने का कोई तरीका है?

इसलिए मैंने यह सवाल पोस्टग्रेएसक्यूएल मेलिंग सूची पर पूछा , जैसा क्रेग रिंगर द्वारा सुझाया गया , और मुझे उत्तर मिल गया है।

संक्षेप में समाधान एक प्रक्रिया लिखना है जो JSON सरणी को PostgreSQL सरणी में अमल में लाता है:

create function data_product_ids(JSON) returns integer[] immutable  as $$
select array_agg((a->>'product_id')::integer) from
json_array_elements($1->'products') as a $$ language sql ;

और उस प्रक्रिया का उपयोग CHECK . में करें स्टेटमेंट:

alter table orders add check (1 <= ALL(data_product_ids(data)));

यह कैसे काम करता है, इस बारे में अधिक जानकारी के लिए उत्तर पर देखें। PostgreSQL मेलिंग सूची . जोएल हॉफमैन को श्रेय।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ़ंक्शन से टेक्स्ट आउटपुट को नई क्वेरी के रूप में उपयोग करें

  2. PostgreSQL RDS dblink_connect () का उपयोग करते समय कनेक्शन पासवर्ड की हार्ड कोडिंग से बचें

  3. अद्यतन-से खंड jOOQ में सीटीई क्षेत्र के लिए एक उम्मीद फेंकता है

  4. SQLAlchemy के साथ परावर्तित तालिका से हटाई गई पंक्तियाँ

  5. पोस्टग्रेज के साथ कॉलम में अलग-अलग पंक्ति डेटा पिवट/क्रॉस करें