PostgreSQL sytax - DROP DTB

时间:2015-09-29 07:58:14

标签: database postgresql ubuntu syntax-error

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

2 个答案:

答案 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";