模式SCHEMA

1. 创建模式(Schema)

  • 图形化操作:在 testdb 数据库下右键 Schemas -> Create -> Schema...,命名为 myschemas,所有者为 postgres,注释为“我的架构”,点击 Save 完成。
  • SQL 对应:底层等效于 CREATE SCHEMA myschemas;
  • 当前状态:左侧树已显示 Schemas (2),包含新建的 myschemas 和默认的 public。右侧 SQL 执行提示 COMMENT 成功,说明连接正常。

2. 在模式下增加表、视图等

  • 命名空间:模式是表的集合。之前建的表是 public.Student,若要在新模式下建表,需指定为 myschemas.Student
  • 建表示例
CREATE TABLE myschemas.Student (
  id integer NOT NULL,
  name varchar(100),
  subjects varchar(50),
  CONSTRAINT student_pkey PRIMARY KEY (id)
);
COMMENT ON TABLE myschemas.Student IS '新架构下的学生表';Code language: PHP (php)
  • 扩展对象:同样支持视图(Views)、索引、序列(Sequences)、函数(Functions)等(左侧树已列出这些分类)。
  • 搜索路径:若想默认在 myschemas 下操作,可执行 SET search_path TO myschemas, public;,之后写表名可省略模式前缀。

3. 删除模式(Schema)

  • 图形化操作:右键 myschemas -> Delete/Drop(或 Drop Cascade)。
  • 选项区别
    • Delete/Drop(RESTRICT):模式为空(无表等对象)才能删,否则报错。
    • Drop Cascade(CASCADE):强制删除模式及其包含的所有表、视图等对象,需谨慎。
  • SQL 对应-- 空模式删除 DROP SCHEMA myschemas; -- 包含对象一并删除 DROP SCHEMA myschemas CASCADE;

补充提示

  • 默认模式public 是默认模式,建表不写前缀时默认归入 public
  • 权限控制:可通过 Grant Wizard... 分配模式及下属对象的访问权限。
  • 模式不可嵌套:正如截图文字说明,PostgreSQL 模式不能嵌套,但可层级管理对象。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注