Postgresql

這是列舉(列舉類型)的範例嗎

  • November 15, 2013

我正在查看我繼承的程式碼庫。我是 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 oidenumlabel 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的章節中的轉換。

引用自:https://dba.stackexchange.com/questions/53385