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

लूप के लिए पोस्टग्रेज

प्रक्रियात्मक लूप . जैसे तत्व SQL भाषा का हिस्सा नहीं हैं और इसका उपयोग केवल एक प्रक्रियात्मक भाषा फ़ंक्शन, प्रक्रिया (पोस्टग्रेज 11 या बाद के संस्करण) या DO के मुख्य भाग के अंदर किया जा सकता है बयान, जहां ऐसे अतिरिक्त तत्वों को संबंधित प्रक्रियात्मक भाषा द्वारा परिभाषित किया गया है। डिफ़ॉल्ट PL/pgSQL है, लेकिन अन्य भी हैं।

plpgsql के साथ उदाहरण:

DO
$do$
BEGIN 
   FOR i IN 1..25 LOOP
      INSERT INTO playtime.meta_random_sample
         (col_i, col_id)                       -- declare target columns!
      SELECT  i,     id
      FROM   tbl
      ORDER  BY random()
      LIMIT  15000;
   END LOOP;
END
$do$;

कई कार्यों के लिए जिन्हें लूप के साथ हल किया जा सकता है, एक छोटा और तेज़ सेट-आधारित . है कोने के आसपास समाधान। आपके उदाहरण के लिए शुद्ध SQL समतुल्य:

INSERT INTO playtime.meta_random_sample (col_i, col_id)
SELECT t.*
FROM   generate_series(1,25) i
CROSS  JOIN LATERAL (
   SELECT i, id
   FROM   tbl
   ORDER  BY random()
   LIMIT  15000
   ) t;

के बारे में generate_series() :

  • सेलेक्ट क्लॉज में कई सेट-रिटर्निंग फंक्शन के लिए अपेक्षित व्यवहार क्या है?

यादृच्छिक चयनों के प्रदर्शन को अनुकूलित करने के बारे में:

  • यादृच्छिक पंक्तियों 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. त्रुटि:डोकर में अल्पाइन पर psycopg2 स्थापित करते समय pg_config निष्पादन योग्य नहीं मिला

  2. एक ऑपरेशन में एकाधिक PostgreSQL टेबल की स्कीमा कैसे बदलें?

  3. दूसरे कॉलम पर आधारित PostgreSQL अनुक्रम

  4. मैं पोस्टग्रेज़ को एक सबक्वायरी को इनलाइन करने से कैसे रोक सकता हूँ?

  5. PostgreSQL में एक तिथि में वर्ष जोड़ें