当前位置: 首页 > news >正文

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

相关文章:

PostGreSQL模式schema

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

大厂面试题-什么是JVM

JVM全称是Java虚拟机,在聊什么是JVM之前,我们不妨看⼀下这张图。 从这张图中可以看出JVM所处的位置,同时也能看出它两个作用: 1、运⾏并管理Java源码⽂件所⽣成的Class⽂件, 2、在不同的操作系统上安装不同的JVM&#…...

rest参数

Rest参数是ES6中新增的一个语法特性,也称为剩余参数。其语法形式为三个点(...)加上一个名称,用于表示函数的参数个数不确定,可以将多余的参数收集到一个数组中。Rest参数只能作为最后一个参数出现,且一个函…...

Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)

MapReduce原理分析 什么是MapReduce 前言:如果想知道一堆牌中有多少张红桃,直接的方式是一张张的检查,并数出有多少张红桃。 而MapReduce的方法是,给所有的节点分配这堆牌,让每个节点计算自己手中有几张是红桃&#…...

JS DataTable中导出PDF中文乱码

JS DataTable中导出PDF中文乱码 文章目录 JS DataTable中导出PDF中文乱码一. 问题二. 原因三. vfs_fonts.js四. pdfmake.js五. 解决六.参考资料 一. 问题 二. 原因 DataTable使用pdfmake,pdfmake默认字体为Roboto,不支持中文字体。添加自己的字体&#…...

代码签名证书续费

代码签名证书的有效周期是1-3年,这种情况下证书到期了就要重新申请办理,最开始同样的申请验证步骤还要再走一遍,尤其是Ukey还是要CA机构重新颁发,还是要等待快递配送。OV代码签名证书、EV代码签名证书目前行业内统一采取Ukey存储&…...

机器学习之ROC与AUC

文章目录 定义ROC曲线:AUC(Area Under the ROC Curve): 定义 ROC(Receiver Operating Characteristic)曲线和AUC(Area Under the ROC Curve)是用于评估二分类模型性能的重要工具。 …...

实用篇-Eureka注册中心

一、提供者与消费者 服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务) 服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口) 例如前面的案例中,order-service微服务是服…...

基于springboot实现篮球竞赛预约平台管理系统项目【项目源码+论文说明】

基于springboot实现篮球竞赛预约平台管理系统演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,篮球竞赛预约平台也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大&…...

OpenHarmony docker环境搭建所见的问题和解决

【摘要】OpenHarmony docker环境搭建需要一台安装Ubuntu的虚拟机,并且虚拟机中需要有VScode。 整个搭建流程请参考这篇博客:OpenHarmony docker环境搭建-云社区-华为云 (huaweicloud.com) 上篇博主是用Ubuntu的服务器进行环境搭建的,在使用VS…...

1817_ChibiOS的RT线程

全部学习汇总: GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于线程,有几个概念需要弄清楚:声明、生命循环、延迟、线程引用、线程队列、线程时间、优先级管理、调度。 2. 两个声明…...

牛客网刷题-(7)

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

多模态领域的先进模型

多模态学习领域涌现了许多先进的模型,这些模型能够处理来自不同感官模态的信息并实现多模态任务。以下是一些先进的多模态学习模型: CLIP (Contrastive Language-Image Pretraining):由OpenAI开发的CLIP是一种多模态预训练模型,能…...

列表自动向上滚动

列表自动向上滚动 鼠标放上去 自动停止滚动 <div id"list-detail-main"><div class"my_table_thead_tr"><div v-for"(item, index) in header" :key"index" class"my_table_thead_th">{{ item }}</div…...

嘴笨的技术人员怎么发言

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

vue源码分析(三)——new Vue 的过程(详解data定义值后如何获取的过程)

文章目录 零、准备工作1.创建vue2项目2.修改main.js 一、import Vue from vue引入的vue是哪里来的&#xff08;看导入node_modules包&#xff09;1&#xff1a; 通过node_modules包的package.json文件2&#xff1a; 通过配置中的main入口文件进入开发环境的源码&#xff08;1&a…...

软考系统架构师知识点集锦四:信息安全技术基础知识

一、考情分析 二、考点精讲 2.1信息加解密技术 2.1.1对称加密 概念:对称加密(又称为私人密钥加密/共享密钥加密) : 加密与解密使用同一密钥。特点:加密强度不高&#xff0c;但效率高;密钥分发困难。 (大量明文为了保证加密效率一般使用对称加密) 常见对称密钥加密算法:DES:…...

Vscode中不显示.ipynb文件单元格行号

找到设置&#xff0c;搜索line number&#xff1a; 看到下面那个Notebook: Line Numbers 控制单元格编辑器中行号的显示。&#xff0c;选择on即可&#xff1b;...

【Oracle】[INS-30131]执行安装程序验证所需的初始设置失败。

这里写目录标题 一、问题描述1 报错内容1.1 无法从节点“kotin”检索 exectask 的版本1.2 工作目录"xxx"无法在节点"kotin"上使用 2 相关环境2.1 安装软件2.2 安装系统 3 解决思路分析 二、解决方案1 方案一、 满足验证条件 - 不换系统1.1 第一步、检查文件…...

二进制部署kubernetes集群的推荐方式

软件版本&#xff1a; 软件版本containerdv1.6.5etcdv3.5.0kubernetesv1.24.0 一、系统环境 1.1 环境准备 角色IP服务k8s-master01192.168.10.10etcd、containerd、kube-apiserver、kube-scheduler、kube-controller-manager、kubele、kube-proxyk8s-node01后续etcd、conta…...

汽车电子开发必看:OBD接口中的CAN总线实战指南(附STM32代码)

汽车电子开发实战&#xff1a;OBD接口CAN总线通信与STM32应用解析 1. 汽车电子开发者的CAN总线技术入门 在汽车电子开发领域&#xff0c;CAN总线技术已经成为现代车辆通信系统的核心支柱。这种可靠的串行通信协议最初由博世公司在1980年代开发&#xff0c;专门用于解决汽车内部…...

如何用Xournal++解决数字笔记三大痛点?超实用指南

如何用Xournal解决数字笔记三大痛点&#xff1f;超实用指南 【免费下载链接】xournalpp Xournal is a handwriting notetaking software with PDF annotation support. Written in C with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Su…...

Rustup终极指南:轻松管理你的Rust开发环境

Rustup终极指南&#xff1a;轻松管理你的Rust开发环境 【免费下载链接】rustup The Rust toolchain installer 项目地址: https://gitcode.com/gh_mirrors/ru/rustup 你是否曾经为管理多个Rust版本而烦恼&#xff1f;或者在不同项目间切换工具链时感到困惑&#xff1f;R…...

RevokeMsgPatcher防撤回工具深度指南:让重要消息不再消失的完整解决方案

RevokeMsgPatcher防撤回工具深度指南&#xff1a;让重要消息不再消失的完整解决方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: h…...

如何构建 Flink SQL 任务的血缘分析

版本一&#xff1a;干燥苦涩、缺乏深度&#xff08;反面回答素材&#xff09;面试者语气&#xff1a;&#xff08;机械地背诵&#xff0c;没有眼神交流&#xff0c;缺乏实践细节&#xff09;“关于 Flink SQL 的血缘分析&#xff0c;我认为主要分为以下几个步骤&#xff1a;首先…...

Altium Designer 22 实战:用这个隐藏技巧,为DIP插件焊盘穿上‘防烫服’

Altium Designer 22实战&#xff1a;用丝印层为DIP焊盘打造双重防护 手工焊接DIP插件时&#xff0c;烙铁温度过高或操作不当导致绿油层损坏&#xff0c;进而引发短路问题&#xff0c;是硬件工程师经常遇到的痛点。特别是在生产线上&#xff0c;工人为了效率往往将烙铁温度调至最…...

揭秘书匠策AI:论文写作的未来式导航助手 —— 你的毕业论文智囊团

在学术的浩瀚海洋中&#xff0c;每一位即将扬帆远航的毕业生都面临着同样的挑战——如何撰写一篇高质量、有深度的毕业论文&#xff1f;这不仅仅是对知识的综合运用&#xff0c;更是对思维逻辑、创新能力的全面考验。幸运的是&#xff0c;随着人工智能技术的飞速发展&#xff0…...

编程新手学编程,先学C语言还是C++?学姐告诉你答案

身为一名编程方面的新手&#xff0c;大家都会遭遇的一个疑问是&#xff1a;是要先去学习C语言&#xff0c;还是要先去学习C&#xff1f;有些同学会认为倘若我先着手学习C&#xff0c;之后再回过头来学习C语言&#xff0c;这样是不是会更为简便&#xff1f;毕竟&#xff0c;升级…...

FLUX.1-dev入门指南:适合开发者和研究者的快速图像生成实验

FLUX.1-dev入门指南&#xff1a;适合开发者和研究者的快速图像生成实验 1. 为什么选择FLUX.1-dev进行图像生成实验 FLUX.1-dev是Black Forest Labs推出的开源AI图像生成模型&#xff0c;它代表了当前文生图技术的前沿水平。这个模型特别适合开发者和研究者使用&#xff0c;主…...

SN74181芯片逻辑图解析:从Cn+1进位信号看加法器设计

SN74181芯片逻辑图解析&#xff1a;从Cn1进位信号看加法器设计 在数字电路设计的经典教材中&#xff0c;SN74181算术逻辑单元(ALU)芯片总是占据着重要位置。这款诞生于上世纪60年代的4位ALU芯片&#xff0c;至今仍是理解计算机算术运算基础的绝佳案例。特别是其进位信号Cn1的生…...