让我们说,我在Postgres中实现了这个DB的“简单”实现。
postgres=# CREATE ROLE my_role;
CREATE DATABASE my_db;
GRANT ALL ON DATABASE my_db TO my_role;
CREATE SCHEMA my_schm AUTHORIZATION my_role;然后我想做张桌子:
postgres=#CREATE TABLE IF NOT EXIST my_db.my_schm.table(...);并得到以下错误:cross-database references are not implemented: "my_db.my_schm.table"
之后,我尝试创建连接到db (即\c my_db)的表,并得到以下错误:
schema "my_schm"does not exist因此,我不理解这些错误的行为,假设角色拥有对db的所有权限(是的,我也尝试使用SET ROLE my_role;),但是当我要求在my_db中显示模式时--实际上my_schm并不存在,但是在Postgres中--它确实存在。有人能给我解释一下为什么会这样吗?以及如何在my_schm中对表进行分组?
发布于 2020-05-24 07:56:42
架构只存在于一个数据库中,并在当前数据库中创建:您是在postgres数据库中而不是在mydb中创建架构的。
您需要先连接到mydb数据库,以便在mydb数据库中创建架构。
https://stackoverflow.com/questions/61983088
复制相似问题