DO
कमांड बनाम PL/pgSQL फ़ंक्शन
DO
आदेश पंक्तियों को वापस नहीं करता है। आप NOTICES
भेज सकते हैं या RAISE
अन्य संदेश (भाषा plpgsql के साथ) या आप एक (अस्थायी) तालिका में लिख सकते हैं और बाद में SELECT
इससे बचने के लिए।
लेकिन वास्तव में, इसके बजाय एक (plpgsql) फ़ंक्शन बनाएं, जहां आप रिटर्न प्रकार को RETURNS
के साथ परिभाषित कर सकते हैं खंड या OUT
/ INOUT
पैरामीटर और फ़ंक्शन से विभिन्न तरीकों से वापसी।
यदि आप नहीं चाहते कि कोई फ़ंक्शन अन्य कनेक्शनों के लिए सहेजा और दृश्यमान हो, तो एक "अस्थायी" फ़ंक्शन पर विचार करें, जो एक गैर-दस्तावेजी लेकिन अच्छी तरह से स्थापित विशेषता है:
- PostgreSQL में एक अस्थायी फ़ंक्शन कैसे बनाएं?
generate_series()
समस्या के लिए
मौजूदा समस्या के लिए आपको किसी की आवश्यकता नहीं है इस का। इसके बजाय इस सरल क्वेरी का प्रयोग करें:
SELECT row_number() OVER () AS running_month
, extract('year' FROM m) AS year
, extract('month' FROM m) AS month
FROM generate_series(timestamp '2012-04-01'
, timestamp '2016-01-01'
, interval '1 month') m;
db<>फिडल यहाँ
क्यों?
- PostgreSQL में दो तिथियों के बीच समय श्रृंखला उत्पन्न करना