2010-09-10 8 views
29

का उपयोग कर परिवर्तनीय मान असाइनमेंट मैं इसे करने का प्रयास करता हूं, लेकिन यह एक वाक्यविन्यास त्रुटि है, मैं गलत क्या कर रहा हूं?रिटर्निंग क्लॉज

declare myid := insert into oameni values(default,'lol') returning id; 

मेरी मेज:

create table oameni 
(
id serial primary key, 
name varhcar(10) 
); 

उत्तर

49

आप मान सेट करने के लौटने में खंड जांच उपयोग करने की आवश्यकता आपके चर में लौटाए जाने:

DECLARE myid OAMENI.id%TYPE; 

INSERT INTO oameni 
VALUES 
    (default,'lol') 
RETURNING id INTO myid; 

आप यह भी निर्दिष्ट करने की जरूरत है आपके चर के डेटा प्रकार; मुझे postgresql supports %TYPE and %ROWTYPE देखने में खुशी हुई।

+1

मुझे अभी भी एक वाक्यविन्यास त्रुटि मिलती है, क्या यह केवल एक plpgsql फ़ंक्शन के अंदर उपलब्ध है, या सामान्य posgresql में भी उपलब्ध है? – Omu

+0

@ ओमु: आप इसे चलाने का प्रयास कैसे कर रहे हैं? और PostgreSQL का क्या संस्करण? –

+0

मेरे पास नवीनतम संस्करण 9 आरसी 1 है, और मैंने आपके कोड को एसक्यूएल संपादक – Omu