PL/PgSQL पार्सर में, असाइनमेंट ऑपरेटर को
. के रूप में परिभाषित किया गया हैassign_operator : '='
| COLON_EQUALS
;
यह एक विरासती विशेषता है, जो 1998 से स्रोत कोड में मौजूद है, जब इसे पेश किया गया था - जैसा कि हम PostgreSQL Git रेपो में देख सकते हैं।
संस्करण 9.4 से शुरू होकर यह आधिकारिक तौर पर प्रलेखित है।
यह स्वभाव - एक ही चीज़ के लिए दो ऑपरेटर होने का - pgsql उपयोगकर्ताओं की सूची में उठाया गया था, और कुछ लोगों ने इसे हटाने का अनुरोध किया था, लेकिन इसे अभी भी कोर में रखा गया है क्योंकि लीगेसी कोड का उचित कॉर्पस इस पर निर्भर करता है।
टॉम लेन (कोर पीजी डेवलपर) का यह संदेश देखें।
तो, सीधे अपने सवालों के जवाब देने के लिए:
<ब्लॉकक्वॉट>क्या मुझे दस्तावेज़ों में ऐसा कोई अनुभाग नहीं मिला जो इसका उल्लेख करता हो और/या इसकी व्याख्या करता हो?
आपको यह नहीं मिला क्योंकि यह अनिर्दिष्ट था, जो कि संस्करण 9.4 के अनुसार तय किया गया है।
<ब्लॉकक्वॉट>क्या :=के बजाय =का उपयोग करने के कोई ज्ञात परिणाम हैं।
= . का उपयोग करने के कोई दुष्प्रभाव नहीं हैं , लेकिन आपको := . का उपयोग करना चाहिए अपने कोड को अधिक पठनीय बनाने के लिए असाइनमेंट के लिए, और (एक साइड इफेक्ट के रूप में) PL/SQL के साथ अधिक संगत।
अद्यतन:दुर्लभ परिदृश्यों में एक साइड परिणाम हो सकता है (इरविन का उत्तर देखें)
अद्यतन:उत्तर अद्यतन डैनियल, सैंडी और अन्य से इनपुट के लिए धन्यवाद।