我需要知道一個表的列類型名,到目前爲止,我使用這個查詢:如何獲得正確的柱型名稱?
SELECT column_name as name,
data_type as type
FROM information_schema.columns
WHERE table_name = 'MY_TABLE';
的問題是,數據類型,如geometry
(POSTGIS)返回USER-DEFINED
代替geometry
。
有沒有辦法獲得正確的列類型名稱?
我需要知道一個表的列類型名,到目前爲止,我使用這個查詢:如何獲得正確的柱型名稱?
SELECT column_name as name,
data_type as type
FROM information_schema.columns
WHERE table_name = 'MY_TABLE';
的問題是,數據類型,如geometry
(POSTGIS)返回USER-DEFINED
代替geometry
。
有沒有辦法獲得正確的列類型名稱?
我現在不能測試此權利,但根據documentation爲information_schema.columns
:
data_type該字段的
數據類型,如果它是一個內置類型,或數組,如果它是 某些數組(在這種情況下,請參閱視圖element_types),否則 用戶定義(在這種情況下,該類型在udt_name和 關聯列中標識)。如果該列基於域,則此列 引用該域下的類型(並且該域在domain_name和相關列中標識爲 )。
所以也許列udt_name
包含你想要的。
我會盡快嘗試。謝謝!! –
您是否需要使用SQL查詢來查找類型?如果沒有,在'psql'中不輸入'\ d MY_TABLE'是否適合你? – redneb
@redneb我需要在查詢中做到這一點,如果posible –
我不知道這是否會工作,但你可以嘗試使用'pg_typeof'函數。它需要一個_value_並將其類型作爲字符串返回。所以缺點是你需要找到這樣的值,這可能是一個問題,例如如果表是空的。 – redneb