2010-11-24 11 views
36

postgres में टिप्पणी के लिए चरित्र क्या है?टिप्पणी चरित्र/पात्रों?

SELECT * FROM my_table  # pound sign produces a syntax error 

काम करने के लिए प्रकट होता है धन्यवाद cababunga, निम्नलिखित:

SELECT * FROM my_table  -- this is my comment 

लेकिन यह काम नहीं करता:

\dt jvcurve_thin.jvcurve_results -- my comment #2 

\ डीटी: अतिरिक्त तर्क "-" पर ध्यान नहीं दिया

+7

'psql' अपने स्लैश कमांड पर पिछली पंक्ति टिप्पणियों का समर्थन नहीं करता है। बस पहले लाइन पर टिप्पणी डालें। –

उत्तर

17

एसक्यूएल टिप्पणी में -- साथ शुरू होता है।

+3

सी-स्टाइल टिप्पणियों को अधिकांश डेटाबेस द्वारा भी अनुमति दी जाती है लेकिन मुझे यकीन नहीं है कि कौन सा (यदि कोई है) एसक्यूएल मानक उन्हें निर्धारित करता है: '/ * टिप्पणी * /' –

3

ऐसा लगता है कि psql टिप्पणियों को psql-विशिष्ट "स्लैश कमांड" में पारंपरिक अंत-ऑफ़-लाइन -- टिप्पणियों का समर्थन नहीं करता है।

हालांकि, अगर आप निष्पादन पर प्रदर्शित होने वाली अंतराल टिप्पणियों के ठीक ठीक हैं, तो \echo का उपयोग करके एक वैध कार्य-प्रतीत होता है। उदाहरण के लिए:

\dt jvcurve_thin.jvcurve_results \echo my comment #2 

"डबल स्लैश" विभाजक मेटा-आदेश एक और संभावना की तरह लग रहा है (और गूंज के पक्ष प्रभाव के बिना)। इसके साथ एक नया आदेश शुरू और तुरंत एक -- टिप्पणी शुरू: अंत में

\dt jvcurve_thin.jvcurve_results \\ -- my comment #2 

, खोल का उपयोग करने जा और एक खोल टिप्पणी जोड़ने एक और संभावना की तरह लगता है:

\dt jvcurve_thin.jvcurve_results \! # my comment #2 
+0

आपको शायद दो बैकस्लेश का उपयोग नहीं करना चाहिए क्योंकि इनका उपयोग किया जाता है 'psql' के लिए अलग-अलग कमांड, उदाहरण के लिए '\ d table1 \\ \ d table2', और जब व्यवहार में 'psql' आदेश शामिल होते हैं तो व्यवहार प्रदर्शित कर सकते हैं। विकल्प '-c' [यहां] (http://www.postgresql.org/docs/9.1/static/app-psql.html) का विवरण देखें। – valid

+0

धन्यवाद, @ valid। \\ के साथ \\ के बाद टेक्स्ट को प्रीपेड करने के बारे में, जैसा कि मेरी टिप्पणी '\\ --' में है। – cjerdonek

+1

ओह हाँ। यह ठीक लगता है। यह अभी भी कुछ _different_ व्यवहार पेश करता है। Psql इंटरैक्टिव कंसोल में डबल-डैश टाइप करते समय टिप्पणी कमांड और सीधे उन लोगों को एकत्रित किया जाता है और अगले (टिप्पणी-ब्रेकिंग) गैर-टिप्पणी कमांड के साथ इतिहास में संग्रहीत किया जाता है - एक बहुआयामी टिप्पणी की तरह अर्ध व्यवहार करना। डबल-बैश वाला डबल-बैकस्लैश उसी तरह काम नहीं करता है, यानी टिप्पणी निम्न आदेशों के साथ संकलित नहीं है। भले ही मैं इस सभी वांछित व्यवहार पर विचार करता हूं, मुझे यह विशेष रूप से सहज नहीं लगता है। तो जागरूक रहें;) – valid

55

PostgreSQL प्रलेखन के अनुसार, देखते हैं दोनों इनलाइन और ब्लॉक शैली टिप्पणी नहीं।

इनलाइन शैली:

SELECT 23 AS test -- this is just a test 

ब्लॉक शैली:

/* The following is a very 
* non-trivial SQL code */ 
SELECT 42 AS result 
+1

इस तरह की सामग्री हम आपको इस साइट पर क्यों रखते हैं। – Fuser97381

+1

वह पूछता है कि psql इंटरैक्टिव कंसोल स्क्रिप्ट्स में टिप्पणी कैसे करें (यानी इसके बैकस्लेश मेटा-कमांड्स पर टिप्पणी करना शामिल है, जो कि चाल है), नियमित पोस्टग्रेस एसक्यूएल पर टिप्पणी कैसे नहीं करें। –

1

आधिकारिक दस्तावेज से: PostgreSQL Comments

-- This is a standard SQL comment 

वैकल्पिक रूप से, सी-शैली ब्लॉक टिप्पणियाँ इस्तेमाल किया जा सकता:

एक टिप्पणी जैसे डबल डैश के साथ शुरुआत वर्णों के अनुक्रम और पंक्ति के अंत तक विस्तार, है

/* multiline comment * with nesting: /* nested block comment */ */ 

जहां टिप्पणी के साथ/* शुरू होता है और के */मिलान घटना को फैली हुई है। ये ब्लॉक टिप्पणियां घोंसला, एसक्यूएल में विनिर्दिष्ट मानक लेकिन सी के विपरीत, ताकि एक कोड है कि मौजूदा ब्लॉक टिप्पणियां शामिल हो सकता है की बड़ी ब्लॉक बाहर टिप्पणी कर सकते हैं।

आगे वाक्यविन्यास विश्लेषण से पहले इनपुट स्ट्रीम से एक टिप्पणी हटा दी जाती है और इसे प्रभावी रूप से व्हाइटस्पेस द्वारा प्रतिस्थापित किया जाता है।

और इसे अंधेरे युग (संस्करण 7.0) के बाद से उसी तरह से समर्थित किया गया है।

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