PostgreSQL 模式(SCHEMA)

PostgreSQL 模式(SCHEMA)可以看著是一個表的集合。

一個模式可以包含視圖、索引、據類型、函數和操作符等。

相同的對象名稱可以被用於不同的模式中而不會出現衝突,例如 schema1 和 myschema 都可以包含名為 mytable 的表。

使用模式的優勢:

  • 允許多個用戶使用一個資料庫並且不會互相干擾。

  • 將資料庫對象組織成邏輯組以便更容易管理。

  • 第三方應用的對象可以放在獨立的模式中,這樣它們就不會與其他對象的名稱發生衝突。

模式類似於操作系統層的目錄,但是模式不能嵌套。

語法

我們可以使用 CREATE SCHEMA 語句來創建模式,語法格式如下:

CREATE TABLE myschema.mytable (
...
);

實例

接下來我們連接到 zaixiandb 來創建模式 myschema:

zaixiandb=# create schema myschema;
CREATE SCHEMA

輸出結果 "CREATE SCHEMA" 就代表模式創建成功。

接下來我們再創建一個表格:

zaixiandb=# create table myschema.company(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25),
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以上命令創建了一個空的表格,我們使用以下 SQL 來查看表格是否創建:

zaixiandb=# select * from myschema.company;
 id | name | age | address | salary
----+------+-----+---------+--------
(0 rows)

刪除模式

刪除一個為空的模式(其中的所有對象已經被刪除):

DROP SCHEMA myschema;

刪除一個模式以及其中包含的所有對象:

DROP SCHEMA myschema CASCADE;