PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

भूले हुए असाइनमेंट ऑपरेटर =और सामान्य :=

PL/PgSQL पार्सर में, असाइनमेंट ऑपरेटर को

. के रूप में परिभाषित किया गया है
assign_operator : '='
                | COLON_EQUALS
                ;

यह एक विरासती विशेषता है, जो 1998 से स्रोत कोड में मौजूद है, जब इसे पेश किया गया था - जैसा कि हम PostgreSQL Git रेपो में देख सकते हैं।

संस्करण 9.4 से शुरू होकर यह आधिकारिक तौर पर प्रलेखित है।

यह स्वभाव - एक ही चीज़ के लिए दो ऑपरेटर होने का - pgsql उपयोगकर्ताओं की सूची में उठाया गया था, और कुछ लोगों ने इसे हटाने का अनुरोध किया था, लेकिन इसे अभी भी कोर में रखा गया है क्योंकि लीगेसी कोड का उचित कॉर्पस इस पर निर्भर करता है।

टॉम लेन (कोर पीजी डेवलपर) का यह संदेश देखें।

तो, सीधे अपने सवालों के जवाब देने के लिए:

<ब्लॉकक्वॉट>

क्या मुझे दस्तावेज़ों में ऐसा कोई अनुभाग नहीं मिला जो इसका उल्लेख करता हो और/या इसकी व्याख्या करता हो?

आपको यह नहीं मिला क्योंकि यह अनिर्दिष्ट था, जो कि संस्करण 9.4 के अनुसार तय किया गया है।

<ब्लॉकक्वॉट>

क्या :=के बजाय =का उपयोग करने के कोई ज्ञात परिणाम हैं।

= . का उपयोग करने के कोई दुष्प्रभाव नहीं हैं , लेकिन आपको := . का उपयोग करना चाहिए अपने कोड को अधिक पठनीय बनाने के लिए असाइनमेंट के लिए, और (एक साइड इफेक्ट के रूप में) PL/SQL के साथ अधिक संगत।

अद्यतन:दुर्लभ परिदृश्यों में एक साइड परिणाम हो सकता है (इरविन का उत्तर देखें)

अद्यतन:उत्तर अद्यतन डैनियल, सैंडी और अन्य से इनपुट के लिए धन्यवाद।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में मॉड () कैसे काम करता है

  2. PostgreSQL (psql) में सभी डेटाबेस का आकार प्राप्त करें

  3. एंटिटी फ्रेमवर्क + पोस्टग्रेस्क्ल में ARRAYs का उपयोग करने का कोई तरीका है?

  4. पोस्टग्रेज़ टेबल कॉलम नाम प्रतिबंध?

  5. PostgreSQL के EXPLAIN ANALYZE का MySQL समतुल्य क्या है?