psql command#

General#

  • \bind [PARAM]… set query parameters

  • \copyright show PostgreSQL usage and distribution terms

  • \crosstabview [COLUMNS] execute query and display result in crosstab

  • \errverbose show most recent error message at maximum verbosity

  • \g [(OPTIONS)] [FILE] execute query (and send result to file or |pipe); \g with no arguments is equivalent to a semicolon

  • \gdesc describe result of query, without executing it

  • \gexec execute query, then execute each value in its result

  • \gset [PREFIX] execute query and store result in psql variables

  • \gx [(OPTIONS)] [FILE] as \g, but forces expanded output mode

  • \q quit psql

  • \watch [[i=]SEC] [c=N] [m=MIN] execute query every SEC seconds, up to N times, stop if less than MIN rows are returned

Help#

  • \? [commands] show help on backslash commands

  • \? options show help on psql command-line options

  • \? variables show help on special variables

  • \h [NAME] help on syntax of SQL commands, * for all commands

Query Buffer#

  • \e [FILE] [LINE] edit the query buffer (or file) with external editor

  • \ef [FUNCNAME [LINE]] edit function definition with external editor

  • \ev [VIEWNAME [LINE]] edit view definition with external editor

  • \p show the contents of the query buffer

  • \r reset (clear) the query buffer

  • \s [FILE] display history or save it to file

  • \w FILE write query buffer to file

Input/Output#

  • \copy … perform SQL COPY with data stream to the client host

  • \echo [-n] [STRING] write string to standard output (-n for no newline)

  • \i FILE execute commands from file

  • \ir FILE as \i, but relative to location of current script

  • \o [FILE] send all query results to file or |pipe

  • \qecho [-n] [STRING] write string to \o output stream (-n for no newline)

  • \warn [-n] [STRING] write string to standard error (-n for no newline)

Conditional#

  • \if EXPR begin conditional block

  • \elif EXPR alternative within current conditional block

  • \else final alternative within current conditional block

  • \endif end conditional block

Informational#

(options: S = show system objects, + = additional detail)

  • \d[S+] list tables, views, and sequences

  • \d[S+] NAME describe table, view, sequence, or index

  • \da[S] [PATTERN] list aggregates

  • \dA[+] [PATTERN] list access methods

  • \dAc[+] [AMPTRN [TYPEPTRN]] list operator classes

  • \dAf[+] [AMPTRN [TYPEPTRN]] list operator families

  • \dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families

  • \dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families

  • \db[+] [PATTERN] list tablespaces

  • \dc[S+] [PATTERN] list conversions

  • \dconfig[+] [PATTERN] list configuration parameters

  • \dC[+] [PATTERN] list casts

  • \dd[S] [PATTERN] show object descriptions not displayed elsewhere

  • \dD[S+] [PATTERN] list domains

  • \ddp [PATTERN] list default privileges

  • \dE[S+] [PATTERN] list foreign tables

  • \des[+] [PATTERN] list foreign servers

  • \det[+] [PATTERN] list foreign tables

  • \deu[+] [PATTERN] list user mappings

  • \dew[+] [PATTERN] list foreign-data wrappers

  • \df[anptw][S+] [FUNCPTRN [TYPEPTRN …]] list [only agg/normal/procedure/trigger/window] functions

  • \dF[+] [PATTERN] list text search configurations

  • \dFd[+] [PATTERN] list text search dictionaries

  • \dFp[+] [PATTERN] list text search parsers

  • \dFt[+] [PATTERN] list text search templates

  • \dg[S+] [PATTERN] list roles

  • \di[S+] [PATTERN] list indexes

  • \dl[+] list large objects, same as \lo_list

  • \dL[S+] [PATTERN] list procedural languages

  • \dm[S+] [PATTERN] list materialized views

  • \dn[S+] [PATTERN] list schemas

  • \do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]] list operators

  • \dO[S+] [PATTERN] list collations

  • \dp[S] [PATTERN] list table, view, and sequence access privileges

  • \dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]

  • \drds [ROLEPTRN [DBPTRN]] list per-database role settings

  • \drg[S] [PATTERN] list role grants

  • \dRp[+] [PATTERN] list replication publications

  • \dRs[+] [PATTERN] list replication subscriptions

  • \ds[S+] [PATTERN] list sequences

  • \dt[S+] [PATTERN] list tables

  • \dT[S+] [PATTERN] list data types

  • \du[S+] [PATTERN] list roles

  • \dv[S+] [PATTERN] list views

  • \dx[+] [PATTERN] list extensions

  • \dX [PATTERN] list extended statistics

  • \dy[+] [PATTERN] list event triggers

  • \l[+] [PATTERN] list databases

  • \sf[+] FUNCNAME show a function’s definition

  • \sv[+] VIEWNAME show a view’s definition

  • \z[S] [PATTERN] same as \dp

Large Objects#

  • \lo_export LOBOID FILE write large object to file

  • \lo_import FILE [COMMENT] read large object from file

  • \lo_list[+] list large objects

  • \lo_unlink LOBOID delete a large object

Formatting#

  • \a toggle between unaligned and aligned output mode

  • \C [STRING] set table title, or unset if none

  • \f [STRING] show or set field separator for unaligned query output

  • \H toggle HTML output mode (currently off)

  • \pset [NAME [VALUE]] set table output option (border|columns|csv_fieldsep|expanded|fieldsep| fieldsep_zero|footer|format|linestyle|null| numericlocale|pager|pager_min_lines|recordsep| recordsep_zero|tableattr|title|tuples_only| unicode_border_linestyle|unicode_column_linestyle| unicode_header_linestyle|xheader_width)

  • \t [on|off] show only rows (currently off)

  • \T [STRING] set HTML

    tag attributes, or unset if none

  • \x [on|off|auto] toggle expanded output (currently off)

  • Connection#

    • \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} connect to new database (currently “fadev_infra”)

    • \conninfo display information about current connection

    • \encoding [ENCODING] show or set client encoding

    • \password [USERNAME] securely change the password for a user

    Operating System#

    • \cd [DIR] change the current working directory

    • \getenv PSQLVAR ENVVAR fetch environment variable

    • \setenv NAME [VALUE] set or unset environment variable

    • \timing [on|off] toggle timing of commands (currently off)

    • ! [COMMAND] execute command in shell or start interactive shell

    Variables#

    • \prompt [TEXT] NAME prompt user to set internal variable

    • \set [NAME [VALUE]] set internal variable, or list all if no parameters

    • \unset NAME unset (delete) internal variable