找回密码
立即注册
搜索
发回帖 发新帖

6730

积分

0

好友

852

主题
发表于 2026-1-22 18:57:58 | 查看: 330| 回复: 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.table1 和 schema2.table1 被视为两个完全不同的对象,因此同名表可以在不同的 Schema 中并存。

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

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




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

关闭

站长推荐上一条 /1 下一条

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

GMT+8, 2026-11-8 02:10 , Processed in 0.070932 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

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