有沒有辦法輕鬆獲取查詢結果的列類型?我閱讀了psql文檔,但我不認爲它支持。理想情況下,我能夠得到這樣的:顯示查詢結果列類型(PostgreSQL)
columna : text | columnb : integer
----------------+-------------------
oh hai | 42
有沒有一種方法,我可以得到無編碼的東西了這一信息?
有沒有辦法輕鬆獲取查詢結果的列類型?我閱讀了psql文檔,但我不認爲它支持。理想情況下,我能夠得到這樣的:顯示查詢結果列類型(PostgreSQL)
columna : text | columnb : integer
----------------+-------------------
oh hai | 42
有沒有一種方法,我可以得到無編碼的東西了這一信息?
我不認爲你可以完全打印你在樣本中的內容,除非你爲它寫了一個存儲過程。
一種方式做到這一點(兩個 「選擇」):
create table my_table as select ...
\d my_table
select * from my_table
是的,我只需要類型,不一定是那種格式。謝謝。 – 2010-07-19 15:09:24
與使用'pg_typeof()'相比,這看起來相當麻煩和不方便。 – 2013-06-13 19:17:48
@JayTaylor我同意。人生是一場旅程。 :-) – 2013-06-14 10:41:15
有可能得到任何SELECT查詢結果列類型。
例
考慮下面的查詢和結果,讓我們回答這個問題*「什麼是列類型all_ids的?」 *
SELECT array_agg(distinct "id") "all_ids" FROM "auth_user";
all_ids
--------------------------------------------
{30,461577687337538580,471090357619135524}
(1 row)
我們需要一種機制來推出的類型「all_ids」。
在postgres mailing list archives上,我找到了一個稱爲pg_typeof
的原生pg函數的引用。
用法示例:
SELECT pg_typeof(array_agg(distinct "id")) "all_ids" FROM "auth_user";
輸出:
all_ids
----------
bigint[]
(1 row)
乾杯!
哈,我剛剛在#postgresql昨天問了這個問題(沒有回答) – 2010-07-16 18:25:32
我不認爲'psql'可以直接顯示給你。但修改它應該相當容易。也許你可以編寫一個存儲過程來模擬這個過程。 – Wolph 2010-07-16 18:36:41