PostgreSQL '模式'的 MySQL 等价物是啥?

Posted

技术标签:

【中文标题】PostgreSQL \'模式\'的 MySQL 等价物是啥?【英文标题】:What is the MySQL equivalent of a PostgreSQL 'schema'?PostgreSQL '模式'的 MySQL 等价物是什么? 【发布时间】:2010-12-27 21:41:20 【问题描述】:

我有一个 PostgreSQL 数据库,其表被划分为多个模式。每个模式都有一组不同的访问控制;例如,一个模式可能对普通用户是只读的,而他们可以在另一个模式上创建表。 Schema 还充当命名空间,因此用户在创建新表时不必担心复制现有表。

我想使用 mysql 创建一个类似的设置。它有一个等价的概念吗?如果没有,我怎样才能最接近地模拟它?我不想使用多个数据库。

【问题讨论】:

【参考方案1】:

为表名添加前缀是大多数 MySQL 驱动的应用程序所做的。

【讨论】:

不清楚为什么这被否决了;鉴于我的问题说多个数据库不可取,这个答案并非不合理。 我不是反对者,而是一个猜测:表名前缀与模式完全不同。没有办法设置权限,你排除了某些表名,引用规则完全不同,没有办法设置seach补丁等等等等。至少使用不同的数据库涵盖了其中的一些,但最终你无法在没有它的系统中模拟它。【参考方案2】:

Database 应该是最接近的。

【讨论】:

没错,但它们也有缺点。该数据库旨在部署到各种现有集群上。使用多个数据库使这变得更加复杂,因为运行部署的用户不能只要求他们的管理员创建一个数据库;他们自己需要 CREATE DATABASE 权限。此外,如果我想保留我当前的模式名称,我可能会与该集群上的现有数据库发生冲突。因此,我倾向于尽可能避免使用多个数据库。 这就是为什么我说它是最接近的,而不是等效的。

以上是关于PostgreSQL '模式'的 MySQL 等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL EXPLAIN ANALYZE 的 MySQL 等价物是啥

如何在 psql 中切换数据库?

PostgreSQL 中 Long 数据类型的等价物是啥?

具有复杂查询匹配模式的 MySQL 与 PostgreSQL 性能

SQL Servfer 的 CONTEXT_INFO 的 PostgreSQL 等价物是啥?

使用 JDBC 时,Oracle 的 REF CURSOR 在 Postgresql 中的等价物是啥?