PostgreSQL में "database_name" कमांड का उपयोग करें


366

मैं PostgreSQL के लिए शुरुआती हूं।

मैं Postgres के क्वेरी संपादक से किसी अन्य डेटाबेस से कनेक्ट करना चाहता हूं - जैसे USEMySQL या MS SQL सर्वर की कमांड।

मैंने \c databasenameइंटरनेट पर खोज करके पाया , लेकिन इसके केवल psql पर ही चलता है । जब मैं PostgreSQL क्वेरी संपादक से इसे आज़माता हूं तो मुझे एक सिंटैक्स त्रुटि मिलती है।

मुझे डेटाबेस को pgscripting द्वारा बदलना होगा। क्या कोई जानता है इसे कैसे करना है?



एक अन्य विकल्प स्कीमा से सीधे जुड़ना है। उदाहरण: sudo -u postgres psql -d my_database_nameस्रोत
AlikElzin-kilaka

जवाबों:


381

जब आपको PostgreSQLइसका कनेक्शन मिलता है तो यह हमेशा एक विशेष डेटाबेस के लिए होता है। एक अलग डेटाबेस तक पहुँचने के लिए, आपको एक नया कनेक्शन प्राप्त करना होगा।

\cPsql में उपयोग पुराने कनेक्शन को बंद कर देता है और एक नया प्राप्त करता है, निर्दिष्ट डेटाबेस और / या क्रेडेंशियल्स का उपयोग करके। आपको एक पूरी नई बैक-एंड प्रक्रिया और सब कुछ मिलता है।


आपके मूल्यवान मार्गदर्शन के लिए धन्यवाद kgrittn। क्या आप मुझे बता सकते हैं कि मैं कैसे डेटाबेस से नया संबंध बना सकता हूं और पिछले पृष्ठ को पैगस्क्रिप्ट क्वेरी का उपयोग करके बंद कर सकता हूं?
सैम

मैं पैगस्क्रिप्ट से परिचित नहीं हूं। यदि वह भाषा है जिसमें आप कार्य लिखते हैं, तो इसका उत्तर यह है कि यह नहीं किया जा सकता है। हो सकता है कि आपको अलग- अलग डेटाबेस के बजाय अलग-अलग स्कीमा में टेबल लगाने पर विचार करना चाहिए ?
kgrittn

2
PostgreSQL में एक क्वेरी डेटाबेस को बदल नहीं सकता है।
kgrittn

धन्यवाद आपकी सभी मदद के लिए धन्यवाद .. :)
सैम

8
अगर मैं गलत नहीं हूं, तो MySQL में डेटाबेस पोस्टग्रेक्ज़क्यूएल में स्कीमा के लिए अधिक समान हैं - आप उन दोनों के बीच स्विच कर सकते हैं, लेकिन पोस्टग्रेक्यूएल में डीबी एक पूरी तरह से अलग बॉलगेम हैं।
एमपीएन

213

आपको कनेक्ट पर उपयोग करने के लिए डेटाबेस निर्दिष्ट करना होगा; यदि आप अपनी स्क्रिप्ट के लिए psql का उपयोग करना चाहते हैं, तो आप "\ c name_database" का उपयोग कर सकते हैं

user_name=# CREATE DATABASE testdatabase; 
user_name=# \c testdatabase 

इस बिंदु पर आप निम्न आउटपुट देख सकते हैं

You are now connected to database "testdatabase" as user "user_name".
testdatabase=#

ध्यान दें कि कैसे शीघ्र परिवर्तन होता है। चीयर्स, अभी भी इसके लिए देख रहे हैं, MySQL और बाकी की तुलना में postgreSQL के बारे में बहुत कम जानकारी मेरे विचार में है।



9

MySQL से माइग्रेट करने के दौरान जो मूल समस्या थी, वह थी, मैंने databaseपोस्टग्रेक्यूएल में भी यही शब्द सोचा था , लेकिन ऐसा नहीं है। इसलिए यदि हम डेटाबेस को अपने एप्लिकेशन से स्विच करने जा रहे हैं या pgAdmin, परिणाम अपेक्षित नहीं होगा। जैसा कि मेरे मामले में, हमारे पास प्रत्येक ग्राहक के लिए अलग स्कीमा (यहां पोस्टग्रेक्यूएल शब्दावली पर विचार) है और अलग-अलग व्यवस्थापक स्कीमा है। इसलिए आवेदन में, मुझे स्कीमा के बीच स्विच करना होगा।

इसके लिए हम SET search_pathकमांड का उपयोग कर सकते हैं । यह वर्तमान सत्र के लिए वर्तमान स्कीमा को निर्दिष्ट स्कीमा नाम पर स्विच करता है।

उदाहरण:

SET search_path = different_schema_name;

यह सत्र के लिए current_schema को निर्दिष्ट स्कीमा में बदलता है। इसे स्थायी रूप से बदलने के लिए, हमें postgresql.confफ़ाइल में परिवर्तन करना होगा ।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.