Postgresql

pg_database 是目錄還是表?

  • December 26, 2021

我正在學習 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 命令提供,因此需要直接作業系統目錄的人數越來越少。

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