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

PostgreSQL में किसी फ़ंक्शन का उपयोग करके एकाधिक पंक्तियों को कैसे सम्मिलित करें

आपके पास जो कार्य है बल्कि होना चाहिए:

CREATE FUNCTION insertdata(varchar(10),varchar(40)) 
  RETURNS VOID AS 
$$ 
   INSERT INTO mahasiswa(col_name1, col_name2)
   VALUES ($1,$2); 
$$ 
LANGUAGE sql STRICT;
  • भाषा का नाम उद्धृत न करें। यह एक पहचानकर्ता है।

  • हमेशा जारी बयानों के साथ एक लक्ष्य सूची प्रदान करें। अन्यथा, यदि आप बाद में तालिका की परिभाषा बदलते हैं, तो फ़ंक्शन अप्रत्याशित तरीके से व्यवहार कर सकता है।

  • कभी भी char(n) . का प्रयोग न करें , जब तक आप नहीं जानते कि आप क्या कर रहे हैं। मैं बस text का उपयोग करूंगा ।

एकाधिक पंक्तियाँ सम्मिलित करने के लिए , आप तत्वों की समान संख्या . के साथ मिश्रित प्रकार या दो सरणियों की एक सरणी ले सकते हैं समानांतर में अनस्ट करने के लिए। बाद का प्रदर्शन:

CREATE FUNCTION insertdata(_arr1 text[], _arr2 text[]) 
  RETURNS VOID AS 
$$ 
   INSERT INTO mahasiswa(col_name1, col_name2)
   SELECT unnest(_arr1), unnest(_arr2);
$$ 
LANGUAGE sql STRICT;

कॉल करें:

SELECT insertdata ('{1234567890,0987654321}', '{Nahrun,Hartono}');

मैं इसके बजाय एक plpgsql फ़ंक्शन का उपयोग करूंगा और जांच करूंगा कि गलतियों को रोकने के लिए दोनों सरणियों में तत्वों की संख्या समान है। array_length(arr1, 1) . का उपयोग करें ...

9.4 या बाद के संस्करण पोस्ट करता है ...

... ने अननेस्ट का एक नया संस्करण पेश किया जो समानांतर में कई सरणियों को स्वीकार करता है - उपरोक्त हैक की विचित्रताओं के बिना (कभी भी डिफ़ॉल्ट रूप से CROSS JOIN नहीं होता है। )

   INSERT INTO mahasiswa(col_name1, col_name2)
   SELECT * FROM unnest(_arr1, _arr2);  -- must be in FROM list



  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 सर्वर-साइड तैयार स्टेटमेंट का जीवन काल क्या है

  3. अपाचे एयरफ्लो में पोस्टग्रेज एसक्यूएल लागू करना

  4. क्या किसी भाषा का उपयोग करते समय PostgreSQL को विराम चिह्न और रिक्त स्थान को ध्वस्त करने का कोई तरीका नहीं है?

  5. पोस्टग्रेज 12 के लिए प्लापीथॉन स्थापित नहीं कर सकता