PostgreSQL 架构
本文讨论 PostgreSQL 架构的基本用法,包括创建架构、修改架构、删除架构。
PostgreSQL 允许您在一个数据库中创建多个架构 Schema。Schema 相当于一个组,您可以根据自己的需要将不同的表放在不同的 Schema 下。
PostgreSQL 创建架构
要在当前数据库中创建新的架构,您必须在当前数据库中具有 CREATE
权限。请按照如下语法使用 CREATE SCHEMA
语句:
CREATE SCHEMA [IF NOT EXISTS] schema_name
[AUTHORIZATION role_name];
说明:
CREATE SCHEMA
语句用于在当前数据库中创建一个新的架构。schema_name
是架构的名称。它在同一个数据库中应该是唯一的。IF NOT EXISTS
是可选的。它只是只有在指定的架构名称不存在时才创建新的架构。如果不使用此选项且指定的架构存在, PostgreSQL 将给出一个错误。AUTHORIZATION role_name
子句用于为指定的角色/用户创建架构。
要在架构中创建一个表,请使用 CREATE TABLE
语句,表名采用 schema_name.table_name
的格式,如下:
CREATE TABLE schema_name.table_name
(...)
如果您省略了架构名 schema_name
,则使用默认的架构 publish
。
如果要使用架构中的表,表名采用 schema_name.table_name
的格式,如下:
SELECT * FROM schema_name.table_name;
PostgreSQL 重命名架构
如果要重命名现有的架构,请使用 ALTER SCHEMA
语句,如下:
ALTER SCHEMA schema_name
RENAME TO new_name;
说明:
schema_name
是架构的名字new_name
是架构的新名字
PostgreSQL 修改架构所有者
如果要修改一个架构的所有人,请使用 ALTER SCHEMA
语句,如下:
ALTER SCHEMA schema_name
OWNER TO { new_owner | CURRENT_USER | SESSION_USER};
说明:
schema_name
是架构的名字new_owner
是架构的新的所有者/角色
PostgreSQL 删除架构
如果要删除一个架构,请使用 DROP SCHEMA
语句,如下:
DROP SCHEMA [IF EXISTS] schema_name
[ CASCADE | RESTRICT ];
说明:
schema_name
是架构的名字IF EXISTS
是可选的,它指示只有在指定的架构存在时才进行删除,如果不存在,不返回错误。RESTRICT
指示只有在架构为空的时候才能删除,它是默认的。CASCADE
指示删除架构和其中的对象,以及对象依赖的对象。
结论
本文讨论了 PostgreSQL 架构的基本用法,包括创建架构、修改架构、和删除架构。