2009-05-30 4 views
16

मुझे एक सारणी की आवश्यकता है जो कुंजी-मूल्य जोड़े संग्रहीत करता है, इसलिए मैंने "कुंजी" नामक कॉलम और "वैल्यू" नामक कॉलम के साथ एक बनाया है।एक कॉलम में कैसे सम्मिलित करें जिसका नाम एक एसक्यूएल कीवर्ड

यह विफल रहता है:

insert into mykeyvalues (Key,Value) values ('FooKey', 'FooValue') 

"कीवर्ड 'कुंजी' के पास गलत वाक्य रचना।"

शायद मुझे इसे "कुंजी" नहीं कहना चाहिए, लेकिन मुझे आश्चर्य है कि कॉलम के साथ काम करना संभव है जिसका नाम एक एसक्यूएल कीवर्ड है?

धन्यवाद

उत्तर

27

आपको लगता है कि [] कोष्ठक के साथ की तरह स्तंभ नाम के चारों ओर कर सकते हैं। इसलिए:

insert into mykeyvalues ([Key],[Value]) values ('FooKey', 'FooValue') 
+0

आपके उत्तर के लिए धन्यवाद! – Kurt

+1

क्या होगा यदि आपको जावा से "कुंजी" मान मिल रहा था और मैन्युअल रूप से इसके चारों ओर ब्रैकेट नहीं डाल सका। तो आप क्या करेंगे? – CodeKingPlusPlus

13

उपयोग या तो बैकटिक (`) या डबल कोट्स (") अपने प्रश्न में पहचानकर्ता के आसपास उदाहरण के लिए:।

INSERT INTO mykeyvalues ("Key", "Value") values ('FooKey', 'FooValue') 

लेकिन लंबे समय में, यह सिर्फ पोर्टेबिलिटी कम कर देता है। एक अलग नाम का उपयोग करना आसान है।

+0

असल में, मुझे विश्वास है कि आपका उदाहरण एएनएसआई एसक्यूएल मानक-अनुरूप है। – RBarryYoung

+0

हां, लेकिन वास्तविक जीवन डीबी अक्सर एएनएसआई का सम्मान नहीं करते हैं - उदा। एक डबल कोट्स चाहता है, कोई दूसरा ब्रैकेट चाहता है, फिर भी दूसरा बैकटिक्स इत्यादि चाहता है - दूसरे के बाद एक सिरदर्द :-( –

+0

धन्यवाद। मुझे यकीन नहीं है कि जॉन का जवाब है या यह स्वीकार्य उत्तर होना चाहिए। दोनों काम एक आकर्षण की तरह। – Kurt

संबंधित मुद्दे