عند استخدام PostgreSQL v9.1 ، كيف أقوم بإدراج جميع المخططات باستخدام SQL؟
كنت أتوقع شيئًا على غرار:
SELECT something FROM pg_blah;
عند استخدام سطر الأوامر psql
، يمكنك إدراج كل المخطط باستخدام الأمر \dn
.
اتصل بالأمر psql -> psql --u {userName} {DBName} ، ثم يمكنك كتابة الأمر أدناه للتحقق من عدد المخططات الموجودة في قاعدة البيانات
DBName=# \dn
غير ذلك يمكنك التحقق من بناء الجملة من خلال الخطوات التالية بسهولة-
بعد توصيل DB ، اضغط
DBName=# help
ستحصل على الخيارات أدناه:
إنك تستخدم psql ، واجهة سطر الأوامر لـ PostgreSQL.
النوع:\حقوق النشر لشروط التوزيع
\h للمساعدة في أوامر SQL
\؟ للمساعدة في أوامر psql
\g أو إنهاء بفاصلة منقوطة لتنفيذ الاستعلام
\q للإنهاء
ثم اضغط
DBName=# \?
ستحصل على جميع الخيارات بسهولة بالغة.
تبدأ في postgres 9.3 ، خدعة واحدة يمكنك استخدامها في postgres للحصول على sql الدقيق للأمر المعلوماتي (مثل\d ،\du ،\dp ، إلخ) في psql هي باستخدام معاملة. إليك كيف تسير الحيلة. افتح جلسة postgres واحدة ، ثم اكتب الأمر:
begin;
\dn+
أثناء استمرار تشغيل المعاملة ، افتح جلسة postgres أخرى ، واستفسر عن pg_stat_activity ويمكنك الحصول على sql بالضبط.
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;