Thread: a database can be created but not droped
Hello, This is with 14.1 on Linux. I have created a new database with $ createdb -U sisis -T template0 SRP-27097 I can connect to it, created tables and fill them with SQL: $ psql -Usisis -dSRP-27097 psql (14.1) Geben Sie »help« für Hilfe ein. SRP-27097=# select count(*) from sisisinst; count ------- 2 but I can not drop the database: $ psql -Usisis -dtestdb psql (14.1) Geben Sie »help« für Hilfe ein. testdb=# DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; ERROR: syntax error at or near "-" ZEILE 1: DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; Why is this? matthias -- Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 Public GnuPG key: http://www.unixarea.de/key.pub
Hi, On Mon, Aug 01, 2022 at 11:22:33AM +0200, Matthias Apitz wrote: > > This is with 14.1 on Linux. I have created a new database with > > $ createdb -U sisis -T template0 SRP-27097 > > I can connect to it, created tables and fill them with SQL: > > but I can not drop the database: > > $ psql -Usisis -dtestdb > psql (14.1) > Geben Sie »help« für Hilfe ein. > > testdb=# DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; > ERROR: syntax error at or near "-" > ZEILE 1: DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; > > Why is this? It's because createdb a command that knows how to quote identifiers and will do automatically for you. At the SQL level you have to properly quote identifier, so this command will work: DROP DATABASE IF EXISTS "SRP-27097" WITH FORCE;
Am Mon, Aug 01, 2022 at 11:22:33AM +0200 schrieb Matthias Apitz: > testdb=# DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; > ERROR: syntax error at or near "-" > ZEILE 1: DROP DATABASE IF EXISTS SRP-27097 WITH FORCE; > > Why is this? Please try: DROP DATABASE IF EXISTS "SRP-27097" WITH FORCE; Best rehards Frank