我创建了一个带有大写字母的架构,如下所示:
CREATE SCHEMA "requeteSQL" AUTHORIZATION ......;
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试GRANT
一些特权时,例如:
GRANT SELECT ON ALL TABLES IN SCHEMA requetesql TO ....;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Run Code Online (Sandbox Code Playgroud)ERROR: schema "requetesql" does not exist
双引号强制名称区分大小写。
\n来自此博客:Don\xe2\x80\x99t 在 PostgreSQL 中使用双引号
\n\n\n现在,有一种方法可以解决这个问题,即使用双引号。PostgreSQL 中的单引号用于创建文本字符串,而双引号用于命名标识符而不更改其大小写。
\n让我再说一遍,因为很多人都搞错了:PostgreSQL 中的单引号和双引号有完全不同的作用,并且返回完全不同的数据类型。单引号返回文本字符串。双引号返回(如果您确实可以将它们视为 \xe2\x80\x9creturning\xe2\x80\x9d 任何内容)标识符,但保留大小写。
\n
在你的问题中你应该改变:
\nGRANT SELECT ON ALL TABLES IN SCHEMA requetesql TO ....;\n
Run Code Online (Sandbox Code Playgroud)\n经过
\nGRANT SELECT ON ALL TABLES IN SCHEMA "requeteSQL" TO ....;\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
12100 次 |
最近记录: |