PostgreSQL 创建、删除 schema

一个 PostgreSQL 数据库内部可以创建多个模式(schema),在模式里面创建表,索引等对象,PostgreSQL 数据库的默认 schema 为 public。用户可以创建自定义的 schema,也可以删除 schema。

1. 创建 schema

创建 schema 语法:

CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ]
CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ]
CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_specification

where role_specification can be:

    user_name
  | CURRENT_ROLE
  | CURRENT_USER
  | SESSION_USER

创建 schema 示例:

create schema s1;
create schema if not exists s2;

psql 终端中输入 \dn 可以列出所有 schema 名称:

db2=# \dn
List of schemas
  Name  | Owner
--------+-------
 public | antpg
 s1     | antpg
 s2     | antpg
(3 rows)

当数据库有多个 schema 时,可以通过 search_path 设置当前默认的 schema,也可以在访问表对象时加上 schema 的名称,如下所示:

create schema s1;
create schema s2;
set search_path=s1;
create table t1(id int);
create table s2.t1(id int);

2. 删除 schema

删除 schema 语法:

DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

删除 schema 示例:

drop schema s1;
drop schema if exists s2 cascade;

文章评论

0条评论