我正在尋找一個解決方案,以編程方式生成postgreSQL數據庫統計。 psql命令「\ d +」正是我所需要的(輸出方式),但到目前爲止,我沒有找到一種方法來以編程方式檢索相同的數據(通過使用C#和npgsql.dll)。有什麼建議麼?提前致謝!如何以編程方式找出哪些查詢psql命令「 d +」確實
1
A
回答
0
答案就在這裏:http://wiki.postgresql.org/wiki/Disk_Usage
我發現它非常有用的功能:https://gist.github.com/ArtemGr/8434901
參見:PostgreSQL "DESCRIBE TABLE"
+0
謝謝ArtemGr,第一個鏈接就是我一直在尋找的! – Loonis
0
顯然,規範的方法來發現這一點是與-E
選項啓動PSQL。
然後它吐出它正在使用的查詢(或者它在內部運行的任何查詢)。在這種情況下,它吐出了這一點:
=> \d test_int;
********* QUERY **********
SELECT c.oid,
n.nspname,
c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ '^(test_int)$'
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 2, 3;
**************************
********* QUERY **********
SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoids, '', c.reltablespace, CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistence
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '57695';
**************************
********* QUERY **********
SELECT a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod),
(SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),
a.attnotnull, a.attnum,
(SELECT c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type t
WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation) AS attcollation,
NULL AS indexdef,
NULL AS attfdwoptions
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = '57695' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;
**************************
********* QUERY **********
SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhparent AND i.inhrelid = '57695' ORDER BY inhseqno;
**************************
********* QUERY **********
SELECT c.oid::pg_catalog.regclass FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i WHERE c.oid=i.inhrelid AND i.inhparent = '57695' ORDER BY c.oid::pg_catalog.regclass::pg_catalog.text;
**************************
Table "name_space.test_int"
Column | Type | Modifiers
--------+---------+-----------
yo | integer |
這意味着它是從第一個查詢得到的表oid
,然後用它來查找在查詢的其他各種屬性。
相關問題
- 1. 如何以編程方式確定命令的PATH?
- 2. 如何以編程方式確定哪些數據存儲索引出錯?
- 3. 如何以編程方式查找javac.exe?
- 4. 如何以編程方式查詢senderbase.org?
- 5. 如何以編程方式查詢Google?
- 6. 如何以編程方式退出基於tcl的命令shell?
- 7. 如何以編程方式確定HTML對象可以偵聽哪些事件?
- 8. 如何以編程方式查找Azure實例角色大小?
- 9. 以編程方式確定安裝哪些iFilters
- 10. 以編程方式執行vim命令?
- 11. PseudoTTY以編程方式執行命令
- 12. 以編程方式執行shell命令
- 13. Android |以編程方式運行命令
- 14. 如何找出哪個用戶以編程方式將打印命令發送到windows/windows服務器?
- 15. 如何以編程方式列出哪些ASP.Net角色可以訪問頁面?
- 16. 如何以編程方式找出打開哪種模式的位置?
- 17. 如何以編程方式查找EJB的JNDI查找名稱?
- 18. 以編程方式在FUSE中發出命令?
- 19. 以編程方式確定Python的最大命令行長度
- 20. 如何以編程方式捕獲嘗試塊上的哪個命令失敗
- 21. mysql - 查詢找出哪些我沒有?
- 22. 以編程方式查找哪些WiFi熱點是公共或安全
- 23. 如何以編程方式調用Felix/Karaf shell命令?
- 24. 如何在psql的命令行查詢中轉義單引號?
- 25. 如何以編程方式創建命令鏈接
- 26. 如何查找我可以使用WQL查詢哪些對象?
- 27. Orchard - 以編程方式創建查詢
- 28. 以編程方式搜索查詢
- 29. 你將如何以編程方式確定顯示哪個UITableViewRow?
- 30. 如何查詢NHibernate類映射以找出哪些實體可以引用另一個實體?
您可以使用'-E'選項運行'psql',它會顯示正在使用的語句。 –