GALAT: basis data "dbname" tidak ada

19

Menurut dokumentasi, selama saya tidak terhubung ke database, saya bisa menghapus database di konsol menggunakan:

DROP DATABASE dbname;

Atau saya bisa menjatuhkannya menggunakan alat pembungkus dropdb.

Keduanya memberi saya kesalahan mengatakan database tidak ada, namun ketika di konsol dan mengetik perintah \l, saya mendapatkan daftar database termasuk yang ingin saya hapus.

                                          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 | 

Nama basis data adalah Blog_development (dan yang di bawahnya). Saya sedang bermain dengan rails dan mencoba belajar dari dokumentasi online. Saya ingin memulai dan menghapus semuanya.

Namun ketika mencoba menghapusnya, dikatakan tidak ada. Saya baru mengenal PostgreSQL, jadi saya agak bingung, tidak ada dalam dokumentasi tentang kesalahan ini selain muncul ketika itu tidak ada. Tentu saja itu ada, ada di sana.

Sephethus
sumber
2
Harap selalu tampilkan teks yang lengkap dan tepat dari semua pesan kesalahan, dan perlihatkan versi PostgreSQL Anda.
Craig Ringer
Periksa port tempat DB Anda berjalan. Alat-alat seperti dropdb, Createdb dll akan terhubung secara default ke 5432. Ini menarik saya ketika DB saya benar-benar berjalan pada 5433.

Jawaban:

26

Basis data Anda dibuat menggunakan tanda kutip ganda sehingga namanya sekarang peka huruf besar-kecil. Karena itu, Anda sekarang harus selalu menggunakan tanda kutip ganda ketika merujuk padanya:

drop database "Blog_test";

Rincian lebih lanjut tentang pengenal yang dikutip (nama database adalah pengidentifikasi seperti nama kolom atau tabel) dapat ditemukan dalam manual:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html # SQL-SYNTAX-IDENTIFIER

seekor kuda tanpa nama
sumber
1
Aturan praktis saya selalu menggunakan huruf kecil :( Saya punya masalah yang sama.
Chris Hough