2013-01-08 39 views
54

मैं pl/pgsql के साथ एक फ़ंक्शन लिखना चाहता हूं, मैं पोस्टग्रेस एंटरप्राइज़ प्रबंधक v3 का उपयोग कर रहा हूं और फ़ंक्शन बनाने के लिए खोल का उपयोग कर लेकिन खोल में मुझे वापसी प्रकार को परिभाषित करना होगा। अगर मैं वापसी प्रकार को परिभाषित नहीं करता हूं तो मैं कोई फ़ंक्शन बनाने में सक्षम नहीं हूं।फ़ंक्शन कैसे बनाएं जो कुछ भी नहीं लौटाता

रिटर्न परिणाम के बिना कोई फ़ंक्शन कैसे बना सकता है i.e एक फ़ंक्शन जो एक नई तालिका बनाता है?

उत्तर

87

उपयोग RETURNS void नीचे की तरह:

CREATE FUNCTION stamp_user(id int, comment text) RETURNS void AS $$ 
    #variable_conflict use_variable 
    DECLARE 
     curtime timestamp := now(); 
    BEGIN 
     UPDATE users SET last_modified = curtime, comment = comment 
      WHERE users.id = id; 
    END; 
$$ LANGUAGE plpgsql; 
+10

अन्य पाठकों के लिए, ध्यान दें '# variable_conflict' निर्देश * कुछ नहीं * जवाब के बाकी के साथ क्या करना है। यह एक उदाहरण समारोह का हिस्सा है; एकमात्र महत्वपूर्ण बिट 'वापसी शून्य' है। इसके अलावा, अच्छा, मुझे नहीं पता था कि पीएल/पीजीएसक्यूएल में प्रगति थी। –

+0

यहां '# variable_conflict' का उपयोग करने वाला एक संबंधित केस है: http://dba.stackexchange.com/a/105828/3684 –