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

कस्टम डोमेन पोस्टग्रेज की सरणी बनाएं

एक और संभावित समाधान है:

CREATE TYPE foo_tup AS (item foo);

डोमेन प्रकार इस तरह टुपल्स में लपेटे जा सकते हैं और यह आपको एक सरणी कन्स्ट्रक्टर देता है। नकारात्मक पक्ष यह है कि अब आप शायद कास्ट बनाना चाहते हैं:

select array[row('foo')::foo_tup, row('bar')];

उदाहरण के लिए आप एक फंक्शन और एक कास्ट बना सकते हैं:

create function foo_tup(foo) returns foo_tup language sql as $$
    select row($1)::foo_tup;
$$ immutable;
create function foo(foo_tup) returns foo language sql as $$
     select $1.item;
$$;
create cast (foo as foo_tup) with function foo_tup(foo);
create cast (foo_tup as foo) with function foo(foo_tup);

तब एकत्रीकरण आसान हो जाता है:

select array_agg(myfoo::foo_tup) from my_table; 

हालांकि आपको अतिरिक्त कोष्ठक मिलते हैं।




  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. शर्तें पूरी नहीं होने पर ड्रॉप टेबल रोकें

  3. Postgresql बैकएंड के साथ Heroku पर एक रेल ऐप में COPY FROM का उपयोग करना

  4. इस संदर्भ में json_agg समझ में नहीं आता

  5. PostgreSQL में किसी अन्य तालिका के कॉलम के साथ तालिका के कॉलम को अपडेट करें