zoukankan      html  css  js  c++  java
  • PostgreSQL 模式(SCHEMA)

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

    一个模式可以包含视图、索引、据类型、函数和操作符等。

    相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。

    使用模式的优势:

    • 允许多个用户使用一个数据库并且不会互相干扰。
    • 将数据库对象组织成逻辑组以便更容易管理。
    • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。

    模式类似于操作系统层的目录,但是模式不能嵌套。

    语法

    我们可以使用 CREATE SCHEMA 语句来创建模式,语法格式如下:

    CREATE SCHEMA myschema.mytable (
    ...
    );
    

    实例

    接下来我们连接到 runoobdb 来创建模式 myschema:

    runoobdb=# create schema myschema;
    CREATE SCHEMA
    

    输出结果 "CREATE SCHEMA" 就代表模式创建成功。

    接下来我们再创建一个表格:

    runoobdb=# 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 来查看表格是否创建:

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

    删除模式

    删除一个为空的模式(其中的所有对象已经被删除):

    DROP SCHEMA myschema;
    

    若模式下不为空使用上述命令则会报错:

    ERROR:  cannot drop schema myschema because other objects depend on it
    DETAIL:  table myschema.company depends on schema myschema
    HINT:  Use DROP ... CASCADE to drop the dependent objects too.
    

    删除一个模式以及其中包含的所有对象:

    DROP SCHEMA myschema CASCADE;
    

    问题

    在navicat中只能查看到创建的SCHEMA,看不到下面的数据表

    解决:我用的navicat版本是12,存在这个问题,换成15的版本就能显示了

  • 相关阅读:
    libevent(十)bufferevent 2
    libevent(九)bufferevent
    maven本地库更新失败
    IDEA常用快捷键
    ELASTIC SEARCH 安装
    Hbase建模选择
    ElasticSearch关键概念
    Nginx+tomcat 负载均衡
    MapReduce (MRV1)设计理念与基本架构
    Kafka安装验证及其注意
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13385766.html
Copyright © 2011-2022 走看看