Thread: Using drop database from psql
When I try to drop a database, whether I have opened it or some other database, I get told it doesn't exist. The message changes the case of the database name, but that may be a feature of SQL. They system is a Fedore Core 3 server running postgresql-server-7.4.6-1.FC3.1. Here is the output: [postgres@oz ~]$ psql -d template1 Welcome to psql 7.4.6, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# \l List of databases Name | Owner | Encoding -----------+----------+----------- SCM | postgres | SQL_ASCII SCMTST | lbarnes | SQL_ASCII template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII (4 rows) template1=# \q [postgres@oz ~]$ psql -d SCM Welcome to psql 7.4.6, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit SCM=# drop database SCM; ERROR: database "scm" does not exist Can anyone cast light on this? The database is empty, and I want to recreate it with a different owner (which may be a task more easily done with some other method). -- Lan Barnes lan@falleagle.net Linux Guy, SCM Specialist 858-354-0616
Lan Barnes <lan@falleagle.net> writes: > SCM=# drop database SCM; > ERROR: database "scm" does not exist > Can anyone cast light on this? Case-folding. Within SQL you'd need to refer to that database as "SCM" (with the double quotes). We don't do case-folding for names used on the shell command line, but within SQL this is per spec. See the last paragraphs in this section: http://www.postgresql.org/docs/7.4/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS regards, tom lane
Lan,
Beside Tom's comments, you won't be allowed to drop the database while you are working on it.
(no drop database will succceed if users are still working). So, connect to template1 and fire the SQL with the quotes (dixit Tom Lane) or just use the dropdb command line tool
SCM=# drop database SCM;
ERROR: database "scm" does not exist
Regards,
Guido Barosio
--
/"\ ASCII Ribbon Campaign .
\ / - NO HTML/RTF in e-mail .
X - NO Word docs in e-mail .
/ \ -----------------------------------------------------------------
Beside Tom's comments, you won't be allowed to drop the database while you are working on it.
(no drop database will succceed if users are still working). So, connect to template1 and fire the SQL with the quotes (dixit Tom Lane) or just use the dropdb command line tool
SCM=# drop database SCM;
ERROR: database "scm" does not exist
Regards,
Guido Barosio
On 1/27/06, Tom Lane <tgl@sss.pgh.pa.us > wrote:
Lan Barnes <lan@falleagle.net > writes:
> SCM=# drop database SCM;
> ERROR: database "scm" does not exist
> Can anyone cast light on this?
Case-folding. Within SQL you'd need to refer to that database as
"SCM" (with the double quotes). We don't do case-folding for names
used on the shell command line, but within SQL this is per spec. See
the last paragraphs in this section:
http://www.postgresql.org/docs/7.4/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS
regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org
--
/"\ ASCII Ribbon Campaign .
\ / - NO HTML/RTF in e-mail .
X - NO Word docs in e-mail .
/ \ -----------------------------------------------------------------