错误:数据库“ dbname”不存在


19

根据文档,只要不连接数据库,就可以使用以下命令在控制台中删除数据库:

DROP DATABASE dbname;

或者,我可以使用包装器工具将其删除dropdb

两者都给我一个错误,指出该数据库不存在,但是在控制台中并键入命令时\l,我得到了一个数据库列表,包括要删除的数据库。

                                          List of databases
           Name            |   Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
---------------------------+-----------+----------+-------------+-------------+-----------------------
 Blog_development          | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 Blog_test                 | myusername | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

数据库名称为Blog_development(及其下一个)。我在玩滑轨,尝试从在线文档中学习。我想重新开始并删除所有内容。

但是,当尝试删除它时,它说它不存在。我是PostgreSQL的新手,所以我有点迷失了,除了错误在不存在时弹出之外,文档中没有关于此错误的任何内容。当然存在,就在那。


2
始终显示所有错误消息的完整,准确的文本,并显示您的PostgreSQL版本。
Craig Ringer

检查数据库正在运行的端口。如DROPDB的工具,CREATEDB等会默认连接到5432这抓住了我出去时,我的DB上5433.在实际运行

Answers:


26

您的数据库是使用双引号创建的,因此其名称现在区分大小写。因此,现在您在引用它时必须始终使用双引号:

drop database "Blog_test";

可以在手册中找到有关带引号的标识符(数据库名称是标识符,就像列或表名称一样)的更多详细信息:http :
//www.postgresql.org/docs/current/static/sql-syntax-lexical.html #SQL-SYNTAX-IDENTIFIERS


1
我的经验法则总是使用小写字母:(我有同样的问题
克里斯·霍夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.