Обсуждение: Connecting without specifying a database

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

Connecting without specifying a database

От
Murray Cumming
Дата:
Can PQconnectdb(), or something else, be used without specifying the
dbname in the connection string? I want to connect just so that I can
create a database that does not exist yet.

When I don't specify the dbname, PQconnectdb() tries to connect to a
database with the same name as the user, and then complains that it does
not exist. Is it really necessary for each user to have an empty
database like this?

-- 
Murray Cumming
murrayc@murrayc.com
www.murrayc.com
www.openismus.com



Re: Connecting without specifying a database

От
Robert Treat
Дата:
On Thursday 10 February 2005 06:50, Murray Cumming wrote:
> Can PQconnectdb(), or something else, be used without specifying the
> dbname in the connection string? I want to connect just so that I can
> create a database that does not exist yet.
>
> When I don't specify the dbname, PQconnectdb() tries to connect to a
> database with the same name as the user, and then complains that it does
> not exist. Is it really necessary for each user to have an empty
> database like this?

Most applications choose to connect to template1 in these scenarios. 

-- 
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL


Re: Connecting without specifying a database

От
Michael Fuhr
Дата:
On Thu, Feb 10, 2005 at 12:50:23PM +0100, Murray Cumming wrote:
>
> Can PQconnectdb(), or something else, be used without specifying the
> dbname in the connection string? I want to connect just so that I can
> create a database that does not exist yet.

See "Environment Variables" in the libpq chapter of the documentation:

http://www.postgresql.org/docs/8.0/static/libpq-envars.html

> When I don't specify the dbname, PQconnectdb() tries to connect to a
> database with the same name as the user, and then complains that it does
> not exist. Is it really necessary for each user to have an empty
> database like this?

No, but you have to connect to *some* database.  As Robert Treat
mentioned, you could connect to template1 if you just need to issue
a CREATE DATABASE statement.

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/