Postgresql
這是列舉(列舉類型)的範例嗎
我正在查看我繼承的程式碼庫。我是 Postgres 的新手(但有 Oracle 背景),我認為其中一個查詢是列舉的一個例子。有人可以確認我的想法是否正確,如果不是,那麼這是什麼,以及我如何了解更多資訊。
SELECT fp.id AS fund_part_id, fp.fund_id, fp.principle_amount, fp.detail FROM finance.fund_part fp WHERE fp.status = 'live'::finance.fund_part_status;
我可以查看 pg_enum 目錄(表)中是否有一系列記錄屬於一個
enumtypid oid
。enumlabel name
列中的一些條目是['live', 'for sale', 'pre-agrement']
是的,它看起來像是
finance.fund_part_status
一個列舉類型。假設您使用的是
psql
命令行解釋器,請嘗試以下命令:\dT+ finance.fund_part_status;
您可以通過此查詢來確定係統目錄表
pg_type
:SELECT typtype FROM pg_type WHERE oid = 'finance.fund_part_status'::regtype
我引用手冊關於
pg_type
:typtype 是 b 表示基本類型,c 表示複合類型(例如,表的行類型),d 表示域,e 表示列舉類型,p 表示偽類型,r 表示範圍類型。另請參見 typrelid 和 typbasetype。
大膽強調我的。
更多關於對象標識符類型
regtype
的章節中的轉換。