首页 > 其他分享 >模式

模式

时间:2024-08-05 22:38:43浏览次数:7  
标签:数据库 gavin testdb 模式 public schema

什么是模式

模式是数据库中的一个概念,可以理解为一个命名空间或目录,不同的模式下可以有相同的表、函数等对象而不产生冲突。模式的提出是为了便于管理,只要有权限,各个模式中的对象可以互相调用。在PostgreSQL中,一个数据库可以包含一个或多个模式。

  • PostgreSQL:不能同时访问不同数据库中的对象,当要访问另一个数据库中的表或其他对象时,需要重新连接到这个数据库
  • MySQL:可以同时访问多个数据库中的对象,与PostgreSQL中可以同时访问多个Schema中的对象是一样的
  • Oracle:一个用户对应一个Schema

 

模式的使用

  • 创建模式
    testdb=> create schema gavin;
    CREATE SCHEMA
  • 查看模式
    testdb=> \dn 
    List of schemas
     Name  | Owner 
    -------+-------
     gavin | gavin
    (1 row)
  • 删除模式
    testdb=> drop schema gavin;
    DROP SCHEMA
  • 修改模式
    testdb=> alter schema gavin rename to whh; -- 修改模式名
    ALTER SCHEMA
    
    testdb=> alter schema whh owner to whh;  -- 修改模式属主
    ALTER SCHEMA

 

公共模式

通常情况下,创建和访问表都不用指定模式,实际上这时候访问的都是public模式。每当我们创建一个数据库时,PostrgreSQL会自动为我们创建一个名为public的模式。当登录数据库时,如果没有特意指定,都是以public模式操作各种数据库对象。建议不要使用甚至是删除public模式。

 

模式的搜索路径

  • 在搜索路径中第一个被找到的表被当做选定的表,如果搜索路径中没有匹配的表就会报错,即使匹配表的名称在数据库其他的模式中也会如此。
  • 搜索路径的第一个模式叫当前模式。除了是搜索的第一个模式之外,它还是在CREATE TABLE没有声明模式名时新建表所属的模式。
  • 显示当前搜索模式
    testdb=> show search_path ;
       search_path   
    -----------------
     "$user", public
    (1 row)
  • 修改搜索模式
    testdb=> set search_path="$user", public, whh;
    SET

 

模式的权限

  • 需要赋予USAGE权限,用户才能访问模式中的对象。如果要使用模式中的对象,可能还需要赋予适合该对象的额外权限
  • 模式情况下每个人在public模式下都有CREATE和USAGE权限,可以用以下语句插销这个权限
    testdb=> revoke create on schema public from PUBLIC;
    REVOKE

 

模式的可移植性

  • 为每个用户创建一个与用户名相同的模式,那么就能与Oracle兼容
  • 如果MySQL中有3个数据库,在移植到PostgreSQL中时,应创建3个模式与MySQL中的3个数据库对应,而不是在PostgreSQL中创建3个数据库与之对应

 

总结

  1. 删除public模式
  2. 为每个用户创建一个与用户名相同的模式

 

标签:数据库,gavin,testdb,模式,public,schema
From: https://www.cnblogs.com/gavin-zheng/p/18344183

相关文章

  • CSS书写模式 Writing Mode text-combine-upright
     writing-mode属性定义了文本在水平或垂直方向上如何排布。语法格式如下:writing-mode:horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lrhorizontal-tb:水平方向自上而下的书写方式。即left-right-top-bottomvertical-rl:垂直方向自右而左的书写方式。......
  • 短剧出海最全入局攻略:平台投放、变现模式及营销手段的全面分析
    霸总心尖宠?废柴逆袭打脸?校草F4雄竞?你以为这是国内抖音、快手吗?不。这是海外最近正火的短剧内容!根据《2024年短剧出海营销白皮书》,国内“土味”短剧已经走向国际,成为全球观众的新宠。而美国是最⼤的短剧出海市场,东南亚、⽇韩、欧洲等市场也具有较强发展潜⼒。短视频内容的繁......
  • 一文了解读懂系列:5G连接模式DRX-原理篇
    一、引言与LTE类似,5G中的不连续接收(DRX)分为两种类型:空闲模式DRX和连接模式DRX。在空闲模式DRX中,用户设备(UE)会定期唤醒以监测寻呼消息,如果寻呼消息不是针对它的,则会回到休眠模式。本文将详细讨论5GNR的连接模式DRX。如果在5GNR或LTE中没有连接模式DRX,UE必须始终保持清醒......
  • 设计模式中的类关系
    1.依赖(Dependency)定义:一个类使用到另一个类的实例,通常是通过方法参数、局部变量等。依赖关系是最弱的关系,因为它仅仅表示类之间的临时关联。特征:在UML图中,依赖关系用带箭头的虚线表示,箭头指向被依赖的类。示例:publicclassDriver{  publicvoiddrive(Carcar){......
  • Video Encoder LowLatency模式
    低延迟模式(LowLatencyMode)在视频编码器中是一种优化设置,旨在减少编码和解码过程中的延迟,使视频能够尽快传输和播放。这种模式特别适用于实时应用,例如视频会议、游戏流媒体和直播等。主要用途视频会议:确保与会者之间的对话具有最小的延迟,使交流更自然和流畅。游戏流媒体:......
  • Midjourney、Sora和硅谷机密-《分析模式》漫谈15
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集“AnalysisPatterns”的Preface(前言)有这么一句:KentBeck,WardCunningham,andJimCopleinencouragedmetogetinvolvedwiththecommunityandto developmyideasaspatte......
  • STM32H7 HAL库CubeMX 双重ADC模式同步采样详细配置+FFT计算相位差
    前言在电赛备赛期间琢磨了一下ADC同步采样的实现方式,本来是打算直接用AD7606来着,但是搞了半天也没把驱动整出来...考虑到AD7606本身采样率也拉不到太高,于是就花了几天时间把片上ADC配出来了。查资料的时候我发现关于STM32双重ADC模式的资料是真的少,用FFT算两路信号相位差的实例代......
  • UEFI模式下Windows10重启主板喇叭报警
    UEFI模式下Windows10重启主板喇叭报警,并且无法进入bios。主板发生一件怪事,就是正常开机的情况下,开机正常进入系统,也可以进入bios,主板喇叭不会报错。但是进入到系统再手动重启的话,主板喇叭会报错,然后全程黑屏,无法进入bios,黑屏过后直接进入Windows,如果不纠结这个问题其实可以不用管......
  • ArkTS #02# Ability的调用及启动模式
    1调用&单实例importcommonfrom'@ohos.app.ability.common'importWantfrom'@ohos.app.ability.Want'@Entry@ComponentstructIndex{@Statemessage:string='HelloWorld'build(){Row(){Column(){T......
  • 设计模式图汇
    模板模式简单工厂模式工厂模式原型模式建造者模式策略模式观察者模式装饰模式单件模式外观模式命令模式组合模式状态模式享元模式代理模式/适配器模式桥接模式中介模式......