a database can be created but not droped

Started by Matthias Apitzover 3 years ago3 messagesgeneral
Jump to latest
#1Matthias Apitz
guru@unixarea.de

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

#2Julien Rouhaud
rjuju123@gmail.com
In reply to: Matthias Apitz (#1)
Re: a database can be created but not droped

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;

#3Frank Streitzig
fstreitzig@gmx.net
In reply to: Matthias Apitz (#1)
Re: a database can be created but not droped

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