यदि Postgres की तालिका में स्तंभ का नाम है year
, तो INSERT
उस स्तंभ के लिए मान सेट करने के लिए क्वेरी कैसे दिखनी चाहिए ?
जैसे: वर्ष शब्द के INSERT INTO table (id, name, year) VALUES ( ... );
पास एक त्रुटि देता है ।
यदि Postgres की तालिका में स्तंभ का नाम है year
, तो INSERT
उस स्तंभ के लिए मान सेट करने के लिए क्वेरी कैसे दिखनी चाहिए ?
जैसे: वर्ष शब्द के INSERT INTO table (id, name, year) VALUES ( ... );
पास एक त्रुटि देता है ।
जवाबों:
कीवर्ड केyear
रूप में व्याख्या किए जाने को रोकने के लिए बस दोहरे उद्धरण चिह्नों में संलग्न करें :
INSERT INTO table (id, name, "year") VALUES ( ... );
से प्रलेखन :
एक दूसरे प्रकार का पहचानकर्ता है: सीमांकित पहचानकर्ता या उद्धृत पहचानकर्ता। यह दोहरे-कोट्स (") में वर्णों के एक मनमाने अनुक्रम को संलग्न करके बनाया गया है। एक सीमांकित पहचानकर्ता हमेशा एक पहचानकर्ता होता है, कभी भी एक महत्वपूर्ण शब्द नहीं। इसलिए" चयन "नामक कॉलम या टेबल को संदर्भित करने के लिए" चयन "का उपयोग किया जा सकता है। हालांकि एक निर्विवाद चयन एक महत्वपूर्ण शब्द के रूप में लिया जाएगा और इसलिए जब तालिका या स्तंभ नाम का उपयोग किया जाता है, तो इसका उपयोग किसी त्रुटि के लिए उकसाएगा।
update "user" set "password" = 'value...';
पूरी तरह से ठीक काम करता है ...
यदि आप किसी भी फ़ील्ड / कॉलम में उद्धरण प्रदान नहीं कर रहे हैं, तो यह डिफ़ॉल्ट रूप से Postgres द्वारा कम हो जाएगा। और कॉलम नाम पर आते ही पोस्टग्रैजर्ड कीवर्ड को चेक करना छोड़ देगा।
आपके मामले में, मुझे नहीं लगता कि जब यह आता है तो उद्धरण जोड़ना अनिवार्य है columns
। लेकिन अगर आप उपयोग कर रहे हैं keywords
(Postgres द्वारा पंजीकृत) के नाम के रूप में Table
, Schema
, Function
या Trigger
आदि, आप या तो दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए, या आप डॉट संयोजन के साथ स्कीमा नाम निर्दिष्ट कर सकते हैं।
मान लीजिए, आदेश पोस्टग्रेज द्वारा पंजीकृत कीवर्ड है। और कुछ परिदृश्यों में, आपको इस कीवर्ड को तालिका नाम के रूप में उपयोग करना होगा।
उस समय, Postgres आपको एक तालिका बनाने की अनुमति देगा keywords
। वह है पोस्टग्रेज की खूबसूरती।
आदेश तालिका तक पहुंचने के लिए, या तो आपको एक दोहरे उद्धरण का उपयोग करना होगा या आप तालिका के नाम से पहले स्कीमा नाम का उपयोग कर सकते हैं।
ईजी
1।
select * from schema_name.order;
2।
select * from "order";
इसी तरह, आप इस प्रकार के संयोजन का उपयोग कर सकते हैं। आशा है कि यह आपकी मदद करेगा।
MyTable
,myTable
औरmytable
बस एक ही हैं। उद्धरणों के साथ यह तह नहीं किया जाता है। तो"MyTable"
जैसा है वैसा नहीं हैmytable
।