什么是PostgreSQL"架构"的MySQL等价物?

DNS*_*DNS 6 mysql database postgresql schema

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

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

Mil*_*dev 11

数据库应该是最接近的数据库.

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

moo*_*moo 8

前缀表名是大多数MySQL驱动的应用程序所做的.

  • 目前尚不清楚为什么这是低估的; 鉴于我的问题说多个数据库不可取,这个答案并非不合理. (4认同)
  • 我不是downvoter,而是猜测:前缀表名称与模式没有任何相同之处.没有办法设置权限,你排除某些表名,引用规则*完全*不同,没有办法设置搜索补丁等,等等.使用不同的数据库至少涵盖其中的一些,但最终你无法在没有它的系统中模拟它. (2认同)