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

PostgreSQL में 2d सरणी को 1d सरणी में जल्दी से कैसे हटाएं?

मेरे पुराने उत्तर में आपको जो फ़ंक्शन मिला है, वह बड़े सरणियों के लिए अच्छा नहीं है। मैंने आपके आकार की सरणियों के बारे में कभी नहीं सोचा, जो शायद इसके बजाय एक सेट (एक टेबल) होना चाहिए।

जैसा भी हो सकता है, यह plpgsql फ़ंक्शन संदर्भित में से एक को बदल देता है उत्तर . पोस्टग्रेज 9.1 या बाद के संस्करण की आवश्यकता है।

CREATE OR REPLACE FUNCTION unnest_2d_1d(ANYARRAY, OUT a ANYARRAY)
  RETURNS SETOF ANYARRAY AS
$func$
BEGIN
   FOREACH a SLICE 1 IN ARRAY $1 LOOP
      RETURN NEXT;
   END LOOP;
END
$func$  LANGUAGE plpgsql IMMUTABLE STRICT;

Postgres 9.6 में एक बड़े 2d-सरणी पर मेरे परीक्षण में 40 गुना तेज।

STRICT NULL इनपुट के लिए अपवाद से बचने के लिए (जैसा कि IamIC द्वारा टिप्पणी की गई ):



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django समय को UTC में अनुवाद करना बंद करें

  2. postgresql createb और CREATE DATABASE एक गैर-खाली डेटाबेस उत्पन्न करता है। क्या कांटा?

  3. LastInsertId Postgresql में काम नहीं करता है

  4. क्या गैर-अद्वितीय विशेषता पर सॉर्ट करने पर PostgreSQL ऑर्डर पूरी तरह से गारंटीकृत है?

  5. डुप्लिकेट कुंजी मान अद्वितीय बाधा का उल्लंघन करता है, CakePHP