পোস্টগ্র্রেএসকিউএল-এ কীভাবে আমি সমস্ত স্কিমার তালিকা করব?


239

PostgreSQL v9.1 ব্যবহার করার সময়, আমি কীভাবে এসকিউএল ব্যবহার করে সমস্ত স্কিমার তালিকা করব?

আমি এর লাইনে কিছু আশা করছিলাম:

SELECT something FROM pg_blah;

উত্তর:


257

সমস্ত স্কিমা তালিকাবদ্ধ করতে, (এএনএসআই) স্ট্যান্ডার্ড INFORMATION_SCHEMA ব্যবহার করুন

select schema_name
from information_schema.schemata;

ম্যানুয়ালটিতে আরও বিশদ

অন্যথায়:

select nspname
from pg_catalog.pg_namespace;

ম্যানুয়ালটিতে pg_catolog সম্পর্কে আরও বিশদ


249

psqlকমান্ড লাইন ব্যবহার করার সময় , আপনি কমান্ড সহ সমস্ত স্কিমা তালিকাবদ্ধ করতে পারেন \dn


ধন্যবাদ। The dn দ্বারা স্কিমাগুলি ফিরিয়ে দেওয়া ভাল লাগবে তবে এই ক্ষেত্রে আমি একটি বুটস্ট্র্যাপ অ্যাপ লিখছি যা libpq / libpqxx ব্যবহার করে সংযোগ স্থাপন করে, তাই আমার কাছে সিএলআই অ্যাক্সেস নেই।
স্টাফেন

1
কি হয় , স্কীমগুলি যে \dn, তালিকা যেমন টেবিল যে উল্টোদিকে \dtতালিকা?
টমি

8
@ টমি \dtপাবলিক স্কিমা জন্য টেবিল তালিকা। সমস্ত স্কিমা ব্যবহারের টেবিলগুলি প্রদর্শন করতে \dt *.*এবং নির্দিষ্ট স্কিমা ব্যবহারের জন্য \dt schema_name.*
গুরুতর

@ টমি, স্কীমাগুলি নামস্থান: আপনার বিভিন্ন নামের জায়গাতে একই নামের আলাদা আলাদা টেবিল থাকতে পারে।
eppesuig

38

পিএসকিএল কমান্ডের সাথে সংযুক্ত করুন -> পিএসকিএল - ইউজারনেম N {ডিবিএনএম} তারপরে আপনি ডিবিতে কয়টি স্কিমার উপস্থিত রয়েছে তা পরীক্ষা করতে নীচের কমান্ডটি টাইপ করতে পারেন

DBName=# \dn

অন্যথায় আপনি নীচের পদক্ষেপগুলি দ্বারা সিনট্যাক্সটি সহজেই পরীক্ষা করতে পারেন-

  1. ডিবি সংযোগের পরে টিপুন

    DBName=# help

আপনি নীচের বিকল্পগুলি পাবেন:

আপনি পোস্টগ্রিএসকিউএল-এর কমান্ড-লাইন ইন্টারফেস, পিএসএইচএল ব্যবহার করছেন।
প্রকার: distribution বিতরণ শর্তাদির কপিরাইট
S এসকিউএল আদেশের সাহায্যে h
\? পিএসকিএল কমান্ডের সাহায্যের জন্য
\ g বা সেমিকোলন দিয়ে ক্লেরিটি ক্লায়ারিকে শেষ করতে
\ q ছাড়ুন

তারপরে টিপুন

DBName=# \?

আপনি খুব সহজেই সমস্ত অপশন পাবেন।


9

পোস্টগ্রিজ ৯.৩ থেকে শুরু করে, পিএসকিএল-তে তথ্যগত কমান্ডের (যেমন \ d, \ du, \ dp, ইত্যাদির) মতো সঠিক এসকিউএল পেতে আপনি পোস্টগ্রিসে একটি কৌশল ব্যবহার করতে পারেন তা হ'ল একটি লেনদেন ব্যবহার করে। কৌশলটি কীভাবে চলে Here একটি পোস্টগ্রেশন সেশন খুলুন, তারপরে আপনার আদেশটি টাইপ করুন:

begin;
\dn+

লেনদেন এখনও চলমান থাকাকালীন, অন্য পোস্টগ্রিস সেশনটি খুলুন, এবং pg_stat_activity কোয়েরি করুন এবং আপনি সঠিক স্কয়ারটি পেতে পারেন।

postgres=# select query from pg_stat_activity ;
                                 query                                 
-----------------------------------------------------------------------
 SELECT n.nspname AS "Name",                                          +
   pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner",                 +
   pg_catalog.array_to_string(n.nspacl, E'\n') AS "Access privileges",+
   pg_catalog.obj_description(n.oid, 'pg_namespace') AS "Description" +
 FROM pg_catalog.pg_namespace n                                       +
 WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'      +
 ORDER BY 1;

12
আপনার এটি চালানোর দরকার নেই; সবেমাত্র চালান\set ECHO_HIDDEN on
নিক বার্নেস

8
বা এটি চালানpsql -E
ইভান ক্যারল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.