This is different from the behavior when the same string is read from a file or fed to psql's standard input, because then psql sends each SQL command separately.īecause of this behavior, putting more than one command in a single -c string often has unexpected results. Also, psql only prints the result of the last SQL command in the string. Because of this, the server executes it as a single transaction even if the string contains multiple SQL commands, unless there are explicit BEGIN/ COMMIT commands included in the string to divide it into multiple transactions. Or echo '\x \\ SELECT * FROM foo ' | psqlĮach SQL command string passed to -c is sent to the server as a single query. To achieve that, you could use repeated -c options or pipe the string into psql, for example: psql -c '\x' -c 'SELECT * FROM foo ' Thus you cannot mix SQL and psql meta-commands within a -c option. When either -c or -f is specified, psql does not read commands from standard input instead it terminates after processing all the -c and -f options in sequence.Ĭommand 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. This option can be repeated and combined in any order with the -f option. Specifies that psql is to execute the given command string, command. This is equivalent to setting the variable ECHO to errors. Print failed SQL commands to standard error output. (The default output mode is otherwise aligned.) -b (This does not apply to lines read interactively.) This is equivalent to setting the variable ECHO to all. Print all nonempty input lines to standard output as they are read.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |