找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2754

积分

0

好友

386

主题
发表于 前天 18:57 | 查看: 0| 回复: 0

每日一题趣味图标

这是一道关于 PostgreSQL Schema(模式)机制的辨析题。理解 Schema 的属主、创建权限以及在不同数据库中的作用范围,对于合理规划数据库对象结构至关重要。下面我们来逐一分析每个选项:

题目:在PG库中,关于Schema的说法中错误的是?

A、用户A是模式schema01的属主,用户A可以在任何数据库的schema01下创建表

这个说法是错误的。
在 PostgreSQL 中,Schema 是属于特定数据库的对象。用户A虽然是 schema01 的属主,但 schema01 只存在于它被创建的那个数据库中。用户A无法在其他数据库中找到一个名为 schema01 的模式(除非在其他数据库中也创建了同名Schema),更不可能在其中创建表。因此,跨数据库使用同一个Schema名称进行操作是不被允许的。

B、创建数据库的同时,会默认创建名为public的Schema

这个说法是正确的。
每个新数据库在创建时,都会自动生成一个名为 public 的默认 Schema。如果创建对象时不指定 Schema 名称,对象将被放置在这个 public 模式中。

C、数据库db01属主用户A,用户B可以是数据库db01下Schema的属主

这个说法是正确的。
数据库的属主(user A)和其下某个 Schema 的属主(user B)可以是不同的用户。数据库属主拥有数据库级别的特定权限,而 Schema 属主则对该 Schema 及其下的对象拥有控制权,这两者是独立的。

D、同一数据库的不同Schema中可以创建同名的表

这个说法是正确的。
Schema 在数据库中充当了命名空间的作用。schema1.table1schema2.table1 被视为两个完全不同的对象,因此同名表可以在不同的 Schema 中并存。

总结
本题的正确答案是 A。它错误地理解了 Schema 的数据库边界性。掌握这些细节,能帮助我们在设计 PostgreSQL 数据库结构时,更好地进行权限规划和对象组织,避免潜在的错误。

如果你想深入学习更多数据库或架构相关的知识,欢迎到 云栈社区 与其他开发者交流讨论。




上一篇:技术创业者思维转变:从写代码到构建复利系统的跨越
下一篇:X 推荐算法源码分析:Rust 与 AI 如何支撑亿级流量
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 01:42 , Processed in 0.274927 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表