エラー:データベース「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のバージョンを示しています。
クレイグリンガー

DBが実行されているポートを確認します。私のDBは、実際に5433上で実行していたとき、これは私を捕まえなどdropdbのようなツールは、CREATEDBなどは5432にデフォルトで接続します

回答:


26

データベースは二重引用符を使用して作成されたため、その名前では大文字と小文字が区別されます。したがって、参照するときには常に二重引用符を使用する必要があります。

drop database "Blog_test";

引用識別子(データベース名は列名やテーブル名のような識別子です)の詳細については、次のマニュアルを参照してくださいhttp :
//www.postgresql.org/docs/current/static/sql-syntax-lexical.html #SQL-SYNTAX-IDENTIFIERS


1
親指の私のルールは常に下ケースを使用:(私はこの同じ問題を抱えていた。
クリス・ハフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.