में एक टेबल बनाने के लिए मैं अपने कार्यों में से एक में अस्थायी तालिका बनाने के लिए SELECT INTO
का उपयोग करना चाहता हूं। SELECT INTO
एसक्यूएल में काम करता है लेकिन पीएल/पीजीएसक्यूएल नहीं।चुनें .. पीएल/पीजीएसक्यूएल
यह बयान (orig_table
एक रिश्ता के रूप में मौजूद है) एक मेज कहा जाता mytable बनाता है:
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
लेकिन PostgreSQL में इस समारोह रखा, और आप त्रुटि मिलती है: ERROR: "temp" is not a known variable
CREATE OR REPLACE FUNCTION whatever()
RETURNS void AS $$
BEGIN
SELECT *
INTO TEMP TABLE mytable
FROM orig_table;
END; $$ LANGUAGE plpgsql;
मैं कर सकते हैं SELECT INTO
पीएल/पीजीएसक्यूएल के भीतर record
के प्रकार का एक चर, लेकिन तब मुझे उस रिकॉर्ड से डेटा प्राप्त करते समय संरचना को परिभाषित करना होगा। SELECT INTO
वास्तव में सरल है - स्वचालित रूप से SELECT
क्वेरी की उसी संरचना की एक तालिका बना रहा है। क्या किसी के पास कोई स्पष्टीकरण है कि यह फ़ंक्शन के अंदर क्यों काम नहीं करता है?
ऐसा लगता है कि SELECT INTO
पीएल/पीजीएसक्यूएल में अलग-अलग काम करता है, क्योंकि आप घोषित वैरिएबल में चयन कर सकते हैं। हालांकि, मैं अपनी अस्थायी तालिका संरचना घोषित नहीं करना चाहता हूं। काश यह सिर्फ एसक्यूएल में स्वचालित रूप से संरचना बना देगा।
धन्यवाद
कोशिश करो! मुझे पता था कि मैंने पहले इस समस्या को हल किया था, और मुझे postgresql दस्तावेज़ों से यह वाक्य याद है। मैं पूरी तरह से टेबल बनाने के बारे में भूल गया था। – nnyby
जिसने मुझे थोड़ी देर के लिए पूरी तरह से स्टंप किया था - धन्यवाद। – mvexel