【发布时间】:2020-05-24 07:52:58
【问题描述】:
假设我在 Postgres 中实现了这个“简单”的数据库
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"
在此之后,我尝试创建连接到数据库的表(即\c my_db)并得到以下错误:
schema "my_schm"does not exist
所以,我不理解这些错误的行为,假设该角色对数据库具有所有权限(是的,我也尝试使用 SET ROLE my_role;)但是当我要求在 my_db 中显示架构时确实 my_schm 不存在,但在 Postgres 中存在。有人可以向我解释为什么会这样吗?还有如何对 my_schm 中的表进行分组?
【问题讨论】:
-
为什么不
CREATE TABLE IF NOT EXIST my_db.table(...);?
标签: sql postgresql privileges