PostGreSQL模式schema

问题引入

        之前在做数据库设计时,经常会忽略schema模式,直接在数据库下的public模式下建立各类数据表。如果数据表命名不够规范,后期寻找某张表时就会比较麻烦。通过   所幸,PostgreSQL 的模式schema管理,可以对这个问题进行优化。

PGSQL-模式

模式schema

     模式(SCHEMA)可以看着是一个表的集合, 一个模式可以包含视图、索引、数据类型、函数和操作符等

        其实PG数据库提供的默认数据库模板就是按照模式schema对具备不同功能的数据表进行区分的,

postgres-模板数据库

        可以看到:相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 public和 topology都可以包含名为 mytable 的表。虽然模式类似于操作系统层的目录,但是模式不能嵌套。

使用模式schema的优点

        使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰。

  • 将数据库对象组织成逻辑组以便更容易管理。

  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。

        简单来讲,模式schema为了我们提供了一种按照某种业务规则管理数据表的便捷途径。

如何使用模式?

        ①创建模式:create schema schema_name

create schema myschema;

        ②在模式下创建数据表tb_user

create TABLE myschema.tb_user(user_id INTEGER NOT NULL,user_name VARCHAR(64) NOT NULL,pass_word VARCHAR(32) NOT NULL,create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,remark VARCHAR(128),PRIMARY KEY (user_id)
);

       接着指定主键user_id自增,需要为其创建自增序列:CREATE SEQUENCE,同样,我们的自增序列位于myschema模式下,

# 创建序列
CREATE SEQUENCE myschema.user_sequence START 1;
# 修改tb_user表的主键id为自增序列myschema.user_sequence
ALTER TABLE myschema.tb_user ALTER COLUMN user_id SET DEFAULT nextval('myschema.user_sequence'::regclass)

        ③在模式下创建视图:view_user

CREATE VIEW myschema.view_tb_user AS
SELECT user_id,user_name,create_time,remark FROM myschema.tb_user

         ④添加数据,验证ID主键自增以及create_time默认值是否生效,并通过视图查询数据,

INSERT INTO myschema.tb_user(user_name,pass_word,remark)
VALUES ('user_1',md5('123456'),'普通用户')

        查询视图,

SELECT * FROM myschema.view_tb_user

        ⑤删除模式:

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

DROP SCHEMA myschema;

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

DROP SCHEMA myschema CASCADE;

        如果直接删除myschema会报错, 

        我们使用级联删除,成功删除,

DROP SCHEMA myschema CASCADE

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VTK OrientationMarker 方向 三维坐标系 相机坐标轴 自定义坐标轴

本文 以 Python 语言开发 我们在做三维软件开发时,经常会用到相机坐标轴,来指示当前空间位置; 坐标轴效果: 相机方向坐标轴 Cube 正方体坐标轴 自定义坐标轴: Code: Axes def main():colors vtkNamedC…

(四)库存超卖案例实战——优化redis分布式锁

前言 在上一节内容中,我们已经实现了使用redis分布式锁解决商品“超卖”的问题,本节内容是对redis分布式锁的优化。在上一节的redis分布式锁中,我们的锁有俩个可以优化的问题。第一,锁需要实现可重入,同一个线程不用重…

归结原理、归结演绎推理

主要内容 归结演绎推理范式子句与子句集将谓词公式转化为子句集命题逻辑鲁宾逊归结原理 归结演绎推理 定理证明的实质是对前提P和结论Q证明P →Q的永真性应用反证法,欲证明P →Q,只要证明 P∧~Q 等价于 F鲁宾逊归结原理对机械化推理有重大突破鲁宾逊归…

XJ+Nreal 高精度地图+Nreal眼镜SDK到发布APK至眼镜中

仅支持Anroid平台 Nreal套装自带的计算单元,其实也是⼀个没有显示器的Android设备 新建unity⼯程,将⼯程切换Android平台。 正在上传…重新上传取消正在上传…重新上传取消 Cloud XDK Unity User Manual for Nreal ARGlasses 该XDK是针对 NReal AR 眼镜…

网络基础-4

链路聚合技术 根据灵活性地增加网络设备之间的带宽供给增强网络设备之间连接的可靠性节约成本 链路聚合 是将两个或更多数据信道结合成一个单个的信道,该信道以一个单个的更高带宽的逻辑链路出现。链路聚合一般用来连接一个或多个带宽需求大的设备,例…

Vue $nextTick

我们用一个例子来说明$nextTick的作用: 我们用一个变量showIpt来控制input框的显示和隐藏,默认是隐藏。 我们点击一个按钮后显示这个输入框的同时,input还要自动获取焦点。 但是我们点击按钮过后并没有生效。 为什么?this.show…

【PG】PostgreSQL客户端认证pg_hba.conf文件

目录 文件格式 连接类型(TYPE) 数据库(database) 用户(user) 连接地址(address) 格式 IPv4 IPv6 字符 主机名 主机名后缀 IP-address/IP-mask auth-method trust reject scram-sha-256 md5 password gss sspi …

23种设计模式【创建型模式】详细介绍之【建造者模式】

建造者模式:构建复杂对象的精妙设计 设计模式的分类和应用场景总结建造者模式:构建复杂对象的精妙设计建造者模式的核心思想建造者模式的参与者Java示例:建造者模式 设计模式的分类和应用场景总结 可以查看专栏设计模式:设计模式 …

STM32中除零运算,为何程序不崩溃?

在 C 语言中,除零运算会导致异常吗? 在 C 语言中,当一个数除以零时,会导致除法运算错误,通常表现为“除以零”错误或被称为“浮点异常”(floating-point exception)。 对于整数除法&#xff0c…

RHCE---正则表达式

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 一. 文本搜索工具 grep是linux中一种强大的文件搜索过滤工具,可以按照正 则表达式检索文件内容,并把匹配的结果显示到屏幕上 (匹配的内容会标红&#x…

设计模式(15)组合模式

一、介绍: 1、定义:组合多个对象形成树形结构以表示“整体-部分”的关系的层次结构。组合模式对叶子节点和容器节点的处理具有一致性,又称为整体-部分模式。 2、优缺点: 优点: (1)高层模块调…

JAVA设计模式详解(独家AI解析)

JAVA设计模式详解(独家AI解析) 一、JAVA介绍二、JAVA设计模式六大原则三、JAVA设计模式介绍四、JAVA设计模式详解4.1 单例模式4.1.1 懒汉式(Lazy Initialization)4.1.2 饿汉式(Lazy Initialization) 4.2 代…

UE4/5 竖排文字文本

方法一、使用多行文本组件 新建一个Widget Blueprint 添加Text 或者 Editable Text(Multi-Line) 、TextBox(Multi-Line) 组件。 添加文字,调整字号,调整成竖排文字。 在Wrapping (换行)面板中 : 勾选 Auto Wrap te…

RabbitMQ的交换机(原理及代码实现)

1.交换机类型 Fanout Exchange(扇形)Direct Exchange(直连)opic Exchange(主题)Headers Exchange(头部) 2.Fanout Exchange 2.1 简介 Fanout 扇形的,散开的&#xff1…

统计学习方法 决策树

文章目录 统计学习方法 决策树决策树模型与学习特征选择决策树的生成ID3 算法C4.5 的生成算法 决策树的剪枝CART 算法CART 回归树的生成CART 分类树的生成CART 剪枝 统计学习方法 决策树 阅读李航的《统计学习方法》时,关于决策树的笔记。 决策树模型与学习 决策…

java基础 特殊文件

1.Properties属性文件: 1.1使用Properties读取属性文件里的键值对数据: package specialFile;import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Enumeration; import java.util.Propert…

中电文思海辉:塑造全球AI能力,持续强化诸多行业战略

【科技明说 | 重磅专题】 中电文思海辉以前就是叫文思海辉, 这是由之前两家上市软件外包公司文思信息和海辉软件合并而来,2018年当时各自股票以1:1的比例进行整合,双方股东各持有新公司50%的股权,合并后新公司名称为文…

使用 Pyro 和 PyTorch 的贝叶斯神经网络

一、说明 构建图像分类器已成为新的“hello world”。还记得当你第一次接触 Python 时,你的打印“hello world”感觉很神奇吗?几个月前,当我按照PyTorch 官方教程并为自己构建了一个运行良好的简单分类器时,我也有同样的感觉。 我…

牛客网刷题-(7)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

嘴笨的技术人员怎么发言

对于嘴笨的人来说,即兴发言简直就是灾难,想想自己窘迫的模样,自己都受不了,但职场又避免不了这种场合,所以,就要靠一些技巧让我们顺利打开思路了。 那么,今天就分享几个解救过我的不同场景即兴发…