Обсуждение: a database can be created but not droped

Поиск
Список
Период
Сортировка

a database can be created but not droped

От
Matthias Apitz
Дата:
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



Re: a database can be created but not droped

От
Julien Rouhaud
Дата:
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;



Re: a database can be created but not droped

От
Frank Streitzig
Дата:
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