ПОМИЛКА: база даних "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.
Крейг Рінгер

Перевірте порт, на якому працює ваш БД. Такі інструменти, як dropdb, createdb і т. Д., За замовчуванням підключаться до 5432. Це застало мене, коли мій БД фактично працював на 5433.

Відповіді:


26

Ваша база даних була створена за допомогою подвійних лапок, тому її ім'я тепер залежить від регістру. Тому вам потрібно завжди використовувати подвійні лапки, коли посилаєтесь на них:

drop database "Blog_test";

Більш детальну інформацію про котирувані ідентифікатори (ім'я бази даних - це ідентифікатор, як і назва стовпця чи таблиці) можна знайти в посібнику:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html # Ідентифікатори SQL-SYNTAX


1
у моєму правилі завжди використовується нижній регістр :( У мене була така сама проблема.
Кріс Хоф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.