Postgresql
pg_database 是目錄還是表?
我正在學習 PostgreSQL,並試圖理解模式、目錄和表等基本概念。我一直在閱讀PostgreSQL: Up and Running,並引用這本書:
- 模式是……每個數據庫中的下一級組織,$$ they $$將您的數據庫組織成邏輯組。
- 目錄是儲存 PostgreSQL 內置函式和元數據的系統模式
我目前正在閱讀有關
pg_database
,並且很困惑它是目錄還是表格。從文件中,它說“目錄pg_database
儲存有關可用數據庫的資訊”。但是在 pgAdmin4 上,它被列為目錄中的一個表pg_catalog
。在書中,有一個查詢可以像更新
datistemplate
表格一樣更新列。UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'mydb';
那麼是
pg_database
目錄還是表格?還是(以某種方式)兩者兼而有之?
這些稱為系統目錄。第 52 章。系統目錄說它們在 PostgreSQL 中由正常表表示:
系統目錄是關係數據庫管理系統儲存模式元數據的地方,例如有關表和列的資訊以及內部簿記資訊。PostgreSQL 的系統目錄是正常表。您可以刪除和重新創建表、添加列、插入和更新值,並以這種方式嚴重破壞您的系統。通常,不應手動更改系統目錄,通常有 SQL 命令來執行此操作。(例如,CREATE DATABASE 在 pg_database 目錄中插入一行——實際上是在磁碟上創建數據庫。)對於特別深奧的操作有一些例外,但隨著時間的推移,其中許多已經作為 SQL 命令提供,因此需要直接作業系統目錄的人數越來越少。