MySQL中与PostgreSQL的'schema'相当的是什么?

12

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

我想使用MySQL创建类似的设置。它有相应的概念吗?如果没有,我该如何最接近地模拟它?我宁愿不使用多个数据库。

2个回答

17

4
是的,但它们有缺点。该数据库旨在部署到各种现有群集中。使用多个数据库会使这更加复杂,因为运行部署的用户不能仅仅要求其管理员创建数据库;他们需要自己拥有CREATE DATABASE特权。此外,如果我想保留我的当前模式名称,我可能会冒险与该群集上的现有数据库发生冲突。因此,如果可能的话,我更喜欢避免使用多个数据库。 - DNS
7
所以我说它是最接近的,而不是等同的。 - Milen A. Radev

13

在大多数使用MySQL的应用程序中,表名的前缀是必须的。


5
不清楚为什么会被踩;鉴于我的问题表明多个数据库并不理想,这个答案并不算不合理。 - DNS
2
我不是那个投反对票的人,但我的猜测是:给表名加前缀与模式完全不同,没有办法设置权限,你也无法排除某些表名,引用规则也完全不同,也没有办法设置搜索路径等。至少使用不同的数据库可以解决其中一些问题,但最终你还是无法在没有这个功能的系统中模拟它。 - Magnus Hagander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接