我尝试授予角色时遇到问题。我的命令是:
grant john.doe to john;
我收到错误:
ERROR: syntax error at or near "."
我正在使用postgres数据库。
答案 0 :(得分:1)
如果您的角色确实是john.doe,请使用
grant "john.doe" to john;
https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
SQL标识符和关键字必须以字母开头(a-z,但也是 带变音符号和非拉丁字母的字母)或下划线 (_)。标识符或关键字中的后续字符可以是 字母,下划线,数字(0-9)或美元符号($)。注意 根据信函的标识符不允许使用美元符号 SQL标准,因此它们的使用可能会减少应用程序 便携式的。
并进一步:
还有第二种标识符:分隔标识符或 引用标识符。它是通过包围任意序列形成的 双引号中的字符(")
最后:
带引号的标识符可以包含除字符外的任何字符 代码为零。 (要包含双引号,请写两个双引号。) 这允许构造否则将构造表或列名称 不可能,例如包含空格或&符号的那些。该 长度限制仍然适用。
大多数Postgres家伙都建议避免" camelCase"或" Other.Nam3s"作为标识符...