कथन अर्धविराम के साथ समाप्त होते हैं।
psql
. में , अर्धविराम के बिना एंटर दबाने से कथन अगली पंक्ति पर जारी रहता है, जो आपने क्वेरी बफर में लिखा था उसे निष्पादित करने के बजाय जोड़ दिया। आप देखेंगे कि प्रॉम्प्ट dbname=>
. से बदल जाता है करने के लिए dbname->
यह इंगित करने के लिए कि आप एक निरंतरता रेखा पर हैं।
regress=> DROP TABLE sometable
regress-> \r
Query buffer reset (cleared).
regress=> DROP TABLE sometable;
ERROR: table "sometable" does not exist
regress=>
ध्यान दें कि जब मैं बिना सेमीकोलन के एंटर दबाता हूं, तो प्रॉम्प्ट regress-#
. में कैसे बदल जाता है और कोई कार्रवाई नहीं की जाती है। कोई टेबल नहीं है sometable
, इसलिए यदि कथन चला था तो एक त्रुटि की सूचना दी जाएगी।
इसके बाद, \r
. का उपयोग देखें अगली पंक्ति पर? यह क्वेरी बफर को साफ़ करता है। ध्यान दें कि प्रॉम्प्ट वापस regress=#
में बदल जाता है जब बफ़र साफ़ हो जाता है, क्योंकि अब कोई आंशिक विवरण बफ़र नहीं है।
यह दिखाता है कि किस प्रकार कथनों को पंक्तियों में विभाजित किया जा सकता है:
regress=> DROP TABLE
regress-> sometable
regress-> ;
ERROR: table "sometable" does not exist
भ्रमित करने वाली बात यह है कि psql
बैकस्लैश कमांड जैसे \d
न्यूलाइन-टर्मिनेटेड हैं, सेमीकोलन टर्मिनेटेड नहीं हैं, इसलिए वे करते हैं एंटर दबाते ही रन करें। यह तब आसान होता है जब आप एक कथन लिखते समय तालिका परिभाषा देखना चाहते हैं (कहते हैं), लेकिन यह नए लोगों के लिए थोड़ा भ्रमित करने वाला है।
आपके अतिरिक्त प्रश्नों के लिए:
-
अगर
psql
. में "क्लियर स्क्रीन" कमांड है विंडोज़ के लिए मुझे यह अभी तक नहीं मिला है। लिनक्स पर मैं केवल नियंत्रण-एल का उपयोग करता हूं, जैसा कि किसी अन्य रीडलाइन-उपयोग कार्यक्रम के समान होता है। विंडोज़ में\! cls
काम करेगा। -
PostgreSQL में DDL ट्रांजेक्शनल है। आप
BEGIN
कर सकते हैं एक लेन-देन, कुछ डीडीएल जारी करें, औरCOMMIT
इसे प्रभावी बनाने के लिए लेनदेन। यदि आप स्पष्ट लेन-देन में अपना डीडीएल नहीं करते हैं तो यह तुरंत प्रभावी हो जाता है।