Re: How to mix psql commands and SQL commands on the shell command line? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: How to mix psql commands and SQL commands on the shell command line?
Date
Msg-id 50C24CDD.8010604@gmail.com
Whole thread Raw
In response to How to mix psql commands and SQL commands on the shell command line?  (Aleksey Tsalolikhin <atsaloli.tech@gmail.com>)
List pgsql-general
On 12/07/2012 11:58 AM, Aleksey Tsalolikhin wrote:
> How can I mix psql commands and SQL commands on the shell command line, please?
>
> $ psql
> psql (9.2.1)
> Type "help" for help.
>
> ddcKeyGen=> \timing \\ select count(*) from auth_users;
> Timing is on.
>   count
> -------
>     276
> (1 row)
>
> Time: 1.730 ms
>
> $ psql -c "\timing \\ select count(*) from auth_users;"
> Timing is on.
> $
>
> It seems like psql discards everything after the first psql
> argument...  Is there another way to mix psql and SQL commands on the
> shell command line?

http://www.postgresql.org/docs/9.2/interactive/app-psql.html

-c command
--command=command
Specifies that psql is to execute one command string, command, and then
exit. This is useful in shell scripts. Start-up files (psqlrc and
~/.psqlrc) are ignored with this option.

command must be either a command string that is completely parsable by
the server (i.e., it contains no psql-specific features), or a single
backslash command. Thus you cannot mix SQL and psql meta-commands with
this option. To achieve that, you could pipe the string into psql, like
this: echo '\x \\ SELECT * FROM foo;' | psql. (\\ is the separator
meta-command.)

If the command string contains multiple SQL commands, they are processed
in a single transaction, unless there are explicit BEGIN/COMMIT commands
included in the string to divide it into multiple transactions. This is
different from the behavior when the same string is fed to psql's
standard input. Also, only the result of the last SQL command is returned.

>
> Best,
> Aleksey
>
>


--
Adrian Klaver
adrian.klaver@gmail.com


pgsql-general by date:

Previous
From: Aleksey Tsalolikhin
Date:
Subject: How to mix psql commands and SQL commands on the shell command line?
Next
From: Pavel Stehule
Date:
Subject: Re: How to mix psql commands and SQL commands on the shell command line?