Обсуждение: multiple psql commands in batch
G'Day all, i know that this issues was discussed multiple time, but i still stuck in processing multiple pgsql commands in a DOS batchfile. I want to create a user, than a database with the following command: C:\financial-planner\pgsql\bin\psql.exe -U postgres < create_user_and_db.sql this scceeds. in the create_user_and_db.sql I stored the SQL-commands to setup the database and the database user. but afterwards I want to switch to "mydatabase" and process the create table statements. In the pgsql shell I can switchto "mydatabase" with the following command: \c mydatabase but how can I run mulitple pgsql commands in a batch job? After loads of reading I'm still not able to do this. Any help is really appreciated! Thanks, Tobias -- Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
On Fri, June 2, 2006 2:28 pm, Tobias Boes said: > G'Day all, > > i know that this issues was discussed multiple time, but i still stuck in > processing multiple pgsql commands in a DOS batch file. > I want to create a user, than a database with the following command: > C:\financial-planner\pgsql\bin\psql.exe -U postgres < > create_user_and_db.sql > > this scceeds. in the create_user_and_db.sql I stored the SQL-commands to > setup the database and the database user. > but afterwards I want to switch to "mydatabase" and process the create > table statements. In the pgsql shell I can switch to "mydatabase" with the > following command: > \c mydatabase > but how can I run mulitple pgsql commands in a batch job? After loads of > reading I'm still not able to do this. > Any help is really appreciated! > Thanks, > Tobias The switch you are looking for is '-d'. Use like such: C:\financial-planner\pgsql\bin\psql.exe -d mydatabase (With appropriate user and commands, of course.) I'd move the create table statements to a seperate file, and make another call from the batch file. (Otherwise, in this context I believe schema == database, so if you appended the database name to table names in the SQL creates like this 'mydatabase.mytable' that should work as well.) Daniel T. Staal --------------------------------------------------------------- This email copyright the author. Unless otherwise noted, you are expressly allowed to retransmit, quote, or otherwise use the contents for non-commercial purposes. This copyright will expire 5 years after the author's death, or in 30 years, whichever is longer, unless such a period is in excess of local copyright law. ---------------------------------------------------------------
Something like: create database \connect database user create table .... Cheers, Andrej
ok, but when I have a batch file like this: >>> @echo off C:\postgresdir\pgsql\bin\psql.exe -U postgres CREATE DATABASE mydatabase; CREATE USER mydbuser PASSWORD 'mypwd'; <<< i can't get it to run. How do i set SQL-commands in this case? > -------- Original-Nachricht -------- > Datum: Sat, 3 Jun 2006 10:48:57 +1200 > Von: Andrej Ricnik-Bay <andrej.groups@gmail.com> > An: Tobias Boes <tobias.boes@gmx.de> > Betreff: Re: [NOVICE] multiple psql commands in batch > > Something like: > > create database > \connect database user > create table .... > > Cheers, > Andrej > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Have you searched our list archives? > > http://archives.postgresql.org -- Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer