PostgreSQL 语法 - DROP DTB

PostgreSQL sytax - DROP DTB

我创建了名称为 -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?

有特殊字符的标识符需要用双引号括起来:

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;

- 通常不是对象名称中的合法字符。如果你想使用它,你应该用引号保护名称 ("):

DROP DATABASE "-encoding=UTF-8";