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

Postgresql में संग्रहीत कार्यविधियों का उपयोग करके तालिका में डेटा कैसे सम्मिलित करें

PostgreSQL ने PG11 तक संग्रहीत कार्यविधियों का समर्थन नहीं किया। इससे पहले, आप एक फ़ंक्शन का उपयोग करके एक ही परिणाम प्राप्त कर सकते थे। उदाहरण के लिए:

CREATE FUNCTION MyInsert(_sno integer, _eid integer, _sd date, _ed date, _sid integer, _status boolean)
  RETURNS void AS
  $BODY$
      BEGIN
        INSERT INTO app_for_leave(sno, eid, sd, ed, sid, status)
        VALUES(_sno, _eid, _sd, _ed, _sid, _status);
      END;
  $BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

फिर आप इसे इस तरह कह सकते हैं:

select * from MyInsert(1,101,'2013-04-04','2013-04-04',2,'f' );

Pg के संग्रहीत कार्यों की मुख्य सीमाएँ - वास्तविक संग्रहीत कार्यविधियों की तुलना में - हैं:

  1. एकाधिक परिणाम सेट वापस करने में असमर्थता
  2. स्वायत्त लेन-देन के लिए कोई समर्थन नहीं है (एक फ़ंक्शन के भीतर BEGIN, COMMIT और ROLLBACK)
  3. एसक्यूएल-मानक कॉल सिंटैक्स के लिए कोई समर्थन नहीं है, हालांकि ओडीबीसी और जेडीबीसी ड्राइवर आपके लिए कॉल का अनुवाद करेंगे।

उदाहरण

PG11 से शुरू होकर, CREATE PROCEDURE सिंटैक्स पेश किया गया है जो लेनदेन के लिए समर्थन प्रदान करता है।

CREATE PROCEDURE MyInsert(_sno integer, _eid integer, _sd date, _ed date, _sid integer, _status boolean)
LANGUAGE SQL
AS $BODY$
    INSERT INTO app_for_leave(sno, eid, sd, ed, sid, status)
    VALUES(_sno, _eid, _sd, _ed, _sid, _status);   
$BODY$;

जिसके साथ बुलाया जा सकता है:

CALL MyInsert(1,101,'2013-04-04','2013-04-04',2,'f' );


  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. कॉलम स्टोर प्लान

  4. पीएल/पीजीएसक्यूएल के साथ निकटतम एक्स मिनट तक कैसे जाएं?

  5. किसी फ़ंक्शन में अद्यतन या चयन कथन में गतिशील कॉलम नामों का उपयोग कैसे करें?