Postgresql তথ্য_সেমায় সমস্ত সারণী তালিকাবদ্ধ করুন


200

পোস্টগ্রেএসকিউএল এর তথ্য_সেমার মধ্যে সমস্ত সারণী তালিকাভুক্ত করার সর্বোত্তম উপায় কী?

স্পষ্ট করার জন্য: আমি একটি খালি ডিবি নিয়ে কাজ করছি (আমি নিজের নিজস্ব কোনও টেবিল যোগ করি নি), তবে তথ্য_সেমি কাঠামোর প্রতিটি টেবিলটি দেখতে চাই।

উত্তর:


276

select * from information_schema.tablesএকটি নির্দিষ্ট ডাটাবেসের জন্য পোস্টগ্র্রেস দ্বারা পরিচালিত প্রতিটি টেবিলের তালিকা পেতে কেবল আপনার চালানো উচিত able

where table_schema = 'information_schema'তথ্য স্কিমাতে কেবল সারণীগুলি দেখতে আপনি একটি যুক্ত করতে পারেন।


4
ধন্যবাদ, আমি কেবল চেষ্টা করেছি: / ডিটি (নক্ষত্র)। (তারকাচিহ্ন) এটি কি আলাদা?
ছোট

আমি / ডিটি (নক্ষত্র) সম্পর্কে কিছুই জানি না। (নক্ষত্র) জিনিস, দুঃখিত। আমি পোস্টগ্র্রেসে নির্বাচিত ক্যোয়ারীটি চালিয়েছি এবং এটি এতে সমস্ত সারণী সম্পর্কিত তথ্য তালিকাভুক্ত করেছে। নির্বাচিত বিবৃতিটি চালানোর চেষ্টা করুন (আপনার ফাঁকা ডিবিতে) এবং দেখুন এটি কী দেয়।
রোডিও ক্লাউন

উপরের কমান্ডটি চেষ্টা করে তথ্য_সেমিমাতে নিম্নলিখিত সারণিগুলি তালিকাভুক্ত করা হয়েছে: sql_features, sql_implementation_info, sql_languages, sql_packages, sql_partts, sql_sizing, sql_sizing_profiles ..... সুতরাং সেই টেবিলে এবং তথ্য_সেমিমে কি পার্থক্য রয়েছে?
ছোট্ট

2
আপনি তালিকাভুক্ত সমস্ত সারণী (/ dt কমান্ডের মাধ্যমে) ডাটাবেস সম্পর্কে মেটা-তথ্য সরবরাহ করে। তালিকাভুক্ত প্রতিটি সারণী বিভিন্ন তথ্য দেখায়। সুতরাং, উদাহরণস্বরূপ, তথ্য_সেমি. টেবিল সারণি ডাটাবেস এবং তার বৈশিষ্ট্যগুলির সমস্ত টেবিলগুলি তালিকাভুক্ত করে (যেমন এটি কোনও টেবিল বা দৃষ্টিভঙ্গি কিনা তা দেখতে সক্ষম হওয়া, নাম কী এবং এর মতো অন্যান্য তথ্য)। তথ্য_সেমি.এসএইচএল_এফটিচারস সারণীটি ডাটাবেসে কী বৈশিষ্ট্যগুলি সক্ষম করা আছে তা দেখিয়ে দেবে (যাতে আমি দেখতে পাব যে আমি আমার ডাটাবেসে এম্বেডড সি সমর্থন করেছি, পাশাপাশি সরাসরি এসকিউএল)।
রোডিও ক্লাউন

1
আপনি dt কমান্ড দ্বারা তালিকাভুক্ত প্রতিটি টেবিলের উপর একটি নির্বাচন * চালাতে পারেন - এটি সবেমাত্র আপনাকে ডাটাবেসে মেটা-ডেটাযুক্ত সারণীর একটি তালিকা দেখিয়েছে।
রোডিও ক্লাউন

112

আপনার টেবিলগুলির তালিকা দেওয়ার জন্য ব্যবহার করুন:

SELECT table_name FROM information_schema.tables WHERE table_schema='public'

এটি কেবলমাত্র আপনার তৈরি টেবিলগুলি তালিকাভুক্ত করবে।


আপনি যে টেবিলগুলি তৈরি করেন না সেগুলি সম্পর্কে কীভাবে তবে আপনার অ্যাক্সেসের অনুমতি রয়েছে?
Huy

4
এটি কেবল সর্বজনীন স্কিমে টেবিলগুলি প্রদর্শন করবে। আপনি অন্যান্য স্কিমে টেবিল তৈরি করতে পারেন।
জো ভ্যান ডাইক

এছাড়াও এটি সারণী এবং দর্শনগুলির মধ্যে পার্থক্য করবে না।
জয়য়ারজো

44
\dt information_schema.

পিএসকিএল এর মধ্যে থেকে, ভাল হতে হবে।


14

"\ Z- র" কমান্ড তালিকায় টেবিল যখন ইন্টারেক্টিভ psql অধিবেশন ভিতরে একটি ভাল উপায়।

যেমন।

# psql -d mcdb -U admin -p 5555
mcdb=# /z
                           Access privileges for database "mcdb"
 Schema |              Name              |   Type   |           Access privileges
--------+--------------------------------+----------+---------------------------------------
 public | activities                     | table    |
 public | activities_id_seq              | sequence |
 public | activities_users_mapping       | table    |
[..]
 public | v_schedules_2                  | view     | {admin=arwdxt/admin,viewuser=r/admin}
 public | v_systems                      | view     |
 public | vapp_backups                   | table    |
 public | vm_client                      | table    |
 public | vm_datastore                   | table    |
 public | vmentity_hle_map               | table    |
(148 rows)

1
এটি সর্বজনীন ব্যতীত স্কিমাতে সারণী তালিকাবদ্ধ করে না ।
কেনি এভিট 0

10

আপনি এটি ব্যবহার করতে পারেন

select * from pg_tables where schemaname = 'information_schema'

জেনারাল পিজি * টেবিলগুলি আপনাকে ডিবিতে সমস্ত কিছু দেখতে দেয়, আপনার অনুমতিতে সীমাবদ্ধ করে না (যদি আপনার অবশ্যই টেবিলগুলির অ্যাক্সেস থাকে)।


9

'xxx'পোস্টগ্রেস্কলিতে ব্যক্তিগত স্কিমার জন্য :

SELECT table_name FROM information_schema.tables 
 WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'

ছাড়া table_type = 'BASE TABLE', আপনি সারণী এবং মতামত তালিকাভুক্ত করবেন


8

তথ্য_শেমি.টিবলগুলি থেকে সমস্ত সারণী এবং দর্শনগুলি পান, তথ্য_সেমিমা এবং পিজি_ ক্যাটালগের অন্তর্ভুক্ত করুন।

select * from information_schema.tables

২. টেবিল এবং মতামত নির্দিষ্ট স্কিমা অন্তর্ভুক্ত

select * from information_schema.tables
    where table_schema not in ('information_schema', 'pg_catalog')

3. কেবল টেবিলগুলি (প্রায় \ ডিটি)

select * from information_schema.tables
    where table_schema not in ('information_schema', 'pg_catalog') and
    table_type = 'BASE TABLE'

আপনি যদি টেবিল_প্রকার অনুসারে ফিল্টার না করেন তবে আপনি সমস্ত ধরণের অবজেক্টগুলি পাবেন, যেমন টেবিল এবং ভিউ মিশ্রিত।
রাসেলহফ

ঠিক where table_schema not in ('information_schema', 'pg_catalog')কি জন্য?
জয়য়ারজো

1

আপনি যদি দ্রুত এবং নোংরা ওয়ান-লাইন ক্যোয়ারী চান:

select * from information_schema.tables

আপনি এটি পিএসএকিএল না খালি সরাসরি ক্যোয়ারী সরঞ্জামে চালাতে পারেন।

(অন্যান্য পোস্টগুলি চমৎকার আরও সুনির্দিষ্ট তথ্য_স্কেমা প্রশ্নগুলির পরামর্শ দেয় তবে নতুন হিসাবে আমি এই ওয়ান-লাইন ক্যোয়ারীটি আমাকে টেবিলের সাথে আঁকড়ে ধরতে সহায়তা করে)

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