Postgresql
查找自定義數據類型的目前所有者?
在 Postgresql 中,當我嘗試
ALTER TYPE x ADD VALUE y;
在自定義數據類型上執行時,我收到一條錯誤消息PG::Error: ERROR: must be owner of type x
。我知道這可以通過執行來解決,
ALTER TYPE x OWNER TO <database owner>
但我很好奇的是如何檢查這個特定數據類型的目前所有者。\dT+ x
沒有給我有關目前所有者的資訊。如何提取有關自定義數據類型的更多資訊,包括目前所有者?
直到 9.4
您可以去詢問系統目錄(
pg_type
準確地說是 ):SELECT rolname FROM pg_type t JOIN pg_authid r ON typowner = r.oid WHERE typname = 'bla'; usename ───────── dezso
從 PostgreSQL 9.5 開始
從這個版本開始,有一個名為的新對象標識符類型
regrole
,它使查詢更簡單:SELECT typowner::regrole FROM pg_type t WHERE typname = 'bla';
但還有更多 - 新的 9.5 版本
psql
在使用時已經顯示了所有者\dT+
:Schema | Name | Internal name | Size | Elements | Owner | ... -------------------+------+---------------+------+----------+----------+ ... zel_api_r14_00_09 | bla | bla | 4 | a | postgres | ...