我创建了名为-encoding = UTF-8(未点击)
的数据库没有任何方法可以去除数据库。
\l
name | owner | Encoding | Collate | Ctype
---------------------------------------------------------------------
-encoding=UTF-8 | test1 | UTF8 | en_US.UTF-8 | en_US.UTF-8
DROP DATABASE -encoding=UTF-8;
ERROR: syntax error at near "-"
LINE 1: DROP DATABASE -encoding=UTF-8;
我是否有机会删除数据库或者我必须重新安装PostgreSQL?
答案 0 :(得分:2)
带有特殊字符的标识符需要用双引号括起来:
DROP DATABASE "-encoding=UTF-8";
有关如何使用标识符的详细信息,请参阅手册:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS
名称可能包含前导或尾随空格。要获取正确引用的标识符,您可以使用此查询:
select quote_ident(datname)
from pg_database;
答案 1 :(得分:0)
-
通常不是对象名称中的合法字符。如果要使用它,则应使用引号("
)保护名称:
DROP DATABASE "-encoding=UTF-8";