たとえば、私のPostgresql
データベース名はAjp
です
この名前のデータベースをドロップ/作成することはできません。 Ajp
ドロップ用のスクリプトは
cd /D D:\\Apps
cd RSTAR PGSQL DOTCONNECT
cd bin
cd Debug
cd PG
psql -U postgres -d postgres -c "DROP DATABASE Ajp "
これを実行しているときにこのエラーが発生しました
D:\ Apps\RSTAR PGSQL DOTCONNECT\bin\Debug\PG> psql -U postgres -d postgres -c "DR OP DATABASE Ajp"エラー:データベース "ajp"は存在しません
私は試した psql -U postgres -d postgres -c "DROP DATABASE 'Ajp' "
(引用符で囲まれたDB名)
再びエラーが発生しました
エラー:「 'Ajp'」またはその近くの構文エラー1行目:DROP DATABASE 'Ajp'
この問題をどのように修正しますか? (コメントしないでくださいchange your dbname to lower-case
)
using : "PostgreSQL 9.2.4, compiled by Visual C++ build 1600, 32-bit"
この問題の解決策は次のとおりです
\
psql -U postgres -d postgres -c "DROP DATABASE \"Ajp\";"
コメントの下の を参照してください
大文字と小文字を区別するSQL識別子は、二重引用符で囲む必要があります。
DROP DATABASE "Ajp";
コマンドラインを介して渡した場合、Windowsでそれらが適切に保存されているかどうかはわかりません。
これをSQLスクリプトに入れて、スクリプト名をpsqlに渡す必要がある場合があります。
有効な識別子の詳細については、マニュアルを参照してください: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS