2

Ruby-on-Railsファイルで、名前にdatabase.ymlスラッシュ()が含まれるPostgreSQLデータベースを誤って作成しました。/

さまざまなエスケープシーケンスを試して、psqlコマンドでこのデータベースを削除できませんでした。

4

1 に答える 1

7

データベース名を引用符で囲みます。

DROP DATABASE "database/withslash";

識別子とキーワードのドキュメントから:

2番目の種類の識別子があります:区切られた識別子または引用された識別子。これは、任意の文字シーケンスを二重引用符( ")で囲むことによって形成されます。区切られた識別子は常に識別子であり、キーワードではありません。したがって、「select」は「select」という名前の列またはテーブルを参照するために使用できます。一方、引用符で囲まれていないselectはキーワードと見なされるため、テーブル名または列名が必要な場所で使用すると、解析エラーが発生します。例は、次のような引用符で囲まれた識別子を使用して記述できます。

UPDATE "my_table" SET "a" = 5;

引用符で囲まれた識別子には、コードがゼロの文字を除く任意の文字を含めることができます。

引用符で囲まれた識別子では大文字と小文字が区別されることに注意してください。

ただし、そのデータベースに接続している間はデータベースを削除できないため、コマンドラインdropdbコマンドを使用することをお勧めします。シェルは引用符を解析するので、引用符をエスケープする必要があります。

dropdb \"database/withslash\"
于 2012-09-15T21:15:07.747 に答える