psql
psql â инÑеÑакÑивнÑй ÑеÑминал Postgres Pro
СинÑакÑиÑ
psql [паÑамеÑÑ...] [имÑ_бд [имÑ_полÑзоваÑелÑ]]
ÐпиÑание
ÐÑогÑамма psql â ÑÑо ÑеÑминалÑнÑй ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Postgres Pro. Ðна позволÑÐµÑ Ð¸Ð½ÑеÑакÑивно вводиÑÑ Ð·Ð°Ð¿ÑоÑÑ, пеÑедаваÑÑ Ð¸Ñ Ð² Postgres Pro и видеÑÑ ÑезÑлÑÑаÑÑ. Также запÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð¸Ð· Ñайла или из аÑгÑменÑов командной ÑÑÑоки. ÐÑоме Ñого, psql пÑедоÑÑавлÑÐµÑ ÑÑд меÑакоманд и ÑазлиÑнÑе возможноÑÑи, подобнÑе Ñем, ÑÑо имеÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½ÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñек, Ð´Ð»Ñ Ð¾Ð±Ð»ÐµÐ³ÑÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑкÑипÑов и авÑомаÑизаÑии ÑиÑокого ÑпекÑÑа задаÑ.
ÐаÑамеÑÑÑ #
-a--echo-all#ÐÑпÑавлÑÐµÑ Ð² ÑÑандаÑÑнÑй вÑвод вÑе непÑÑÑÑе Ð²Ñ Ð¾Ð´Ð½Ñе ÑÑÑоки по меÑе Ð¸Ñ ÑÑениÑ. (ÐÑо не оÑноÑиÑÑÑ Ðº ÑÑÑокам, ÑÑиÑаннÑм в инÑеÑакÑивном Ñежиме.) ÐквиваленÑно ÑÑÑановке пеÑеменной
ECHOв знаÑениеall.-A--no-align#ÐеÑеклÑÑÐ°ÐµÑ Ð½Ð° невÑÑовненнÑй Ñежим вÑвода. (Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´ÑÑгой Ñежим,
aligned.) РавнознаÑно команде\pset format unaligned.-b--echo-errors#ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð²Ñе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL Ñ Ð¾Ñибками в ÑÑандаÑÑнÑй поÑок оÑибок. РавнознаÑно пÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменной
ECHOзнаÑениÑerrors.-cкоманда--command=#командаÐеÑедаÑÑ psql
командÑÐ´Ð»Ñ Ð²ÑполнениÑ. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ повÑоÑÑÑÑ Ð¸ комбиниÑоваÑÑ Ð² лÑбом поÑÑдке Ñ ÐºÐ»ÑÑом-f. Ðогда ÑказÑваеÑÑÑ-cили-f, psql не ÑиÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñо ÑÑандаÑÑного ввода; вмеÑÑо ÑÑого она завеÑÑаеÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле обÑабоÑки вÑÐµÑ ÐºÐ»ÑÑей-cи-fпо поÑÑдкÑ.ÐаданнаÑ
командадолжна бÑÑÑ Ð»Ð¸Ð±Ð¾ командной ÑÑÑокой, коÑоÑÐ°Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸Ð½ÑеÑпÑеÑиÑÑеÑÑÑ ÑеÑвеÑом (Ñ. е. не иÑполÑзÑÐµÑ ÑпеÑиÑиÑеÑкие ÑÑнкÑии psql), либо одиноÑной командой Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой. Таким обÑазом, иÑполÑзÑÑ-c, нелÑÐ·Ñ ÑмеÑиваÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL и psql. Ðо ÑÑо можно ÑделаÑÑ, пеÑедав неÑколÑко клÑÑей-cили пеÑедав ÑÑÑÐ¾ÐºÑ Ð² psql ÑеÑез канал:psql -c '\x' -c 'SELECT * FROM foo;'
или
echo '\x \\ SELECT * FROM foo;' | psql
(
\\â ÑазделиÑÐµÐ»Ñ Ð¼ÐµÑакоманд.)ÐÐ°Ð¶Ð´Ð°Ñ ÑÑÑока SQL-команд, Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÐºÐ»ÑÑом
-c, пеÑедаÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ ÐºÐ°Ðº один запÑоÑ. ÐоÑÑÐ¾Ð¼Ñ ÑеÑÐ²ÐµÑ Ð²ÑполнÑÐµÑ ÐµÑ Ð² одной ÑÑанзакÑии, даже когда ÑÑа ÑÑÑока ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÑколÑко команд SQL, еÑли ÑолÑко в ней не ÑодеÑжаÑÑÑ ÑвнÑе командÑBEGIN/COMMIT, ÑазделÑÑÑие ÐµÑ Ð½Ð° неÑколÑко ÑÑанзакÑий. (ÐодÑобнее о Ñом, как ÑеÑÐ²ÐµÑ Ð¾Ð±ÑабаÑÑÐ²Ð°ÐµÑ ÑÑÑоки, вклÑÑаÑÑие неÑколÑко команд, ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 54.2.2.1.)ÐÑли Ð²Ñ Ð½Ðµ Ñ Ð¾ÑиÑе, ÑÑÐ¾Ð±Ñ Ð½ÐµÑколÑко команд вÑполнÑлиÑÑ Ð² одной ÑÑанзакÑии, иÑполÑзÑйÑе неÑколÑко клÑÑей
-cили пеÑедайÑе неÑколÑко команд на ÑÑандаÑÑнÑй ввод psql, пÑименÑÑ Ð»Ð¸Ð±Ð¾ echo, как показано вÑÑе, либо ÑоздаваемÑй пÑÑмо в оболоÑке ÑекÑÑ, напÑимеÑ:psql <<EOF \x SELECT * FROM foo; EOF
--csv#ÐеÑеклÑÑÐ°ÐµÑ Ð² Ñежим вÑвода CSV (Comma Separated Values, ÐнаÑениÑ, ÑазделÑннÑе запÑÑÑми). РавнознаÑно команде
\pset format csv.-dимÑ_бд--dbname=#имÑ_бдУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. РавнознаÑно ÑказаниÑ
имÑ_бдв пеÑвом аÑгÑменÑе, не ÑвлÑÑÑемÑÑ ÐºÐ»ÑÑом, в командной ÑÑÑоке. ÐмеÑÑо имени Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑÑÑока подклÑÑениÑ. Ð ÑÑом ÑлÑÑае паÑамеÑÑÑ Ð² ÑÑÑоке подклÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеопÑеделÑÑÑ Ð¾Ð´Ð½Ð¾Ð¸Ð¼ÑннÑе паÑамеÑÑÑ, заданнÑе в командной ÑÑÑоке.-e--echo-queries#ÐоÑÑÐ»Ð°ÐµÑ Ð²Ñе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL, оÑпÑавленнÑе на ÑеÑвеÑ, еÑÑ Ð¸ на ÑÑандаÑÑнÑй вÑвод. ÐквиваленÑно ÑÑÑановке пеÑеменной
ECHOв знаÑениеqueries.-E--echo-hidden#ÐÑобÑÐ°Ð¶Ð°ÐµÑ ÑакÑиÑеÑкие запÑоÑÑ, генеÑиÑÑемÑе
\dи дÑÑгими командами, наÑинаÑÑимиÑÑ Ñ \. ÐÑо можно иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¸Ð·ÑÑÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑÐµÐ½Ð½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий в psql. ÐквиваленÑно ÑÑÑановке пеÑеменнойECHO_HIDDENзнаÑениÑon.-fимÑ_Ñайла--file=#имÑ_ÑайлаЧиÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸Ð· Ñайла
имÑ_Ñайла, а не из ÑÑандаÑÑного ввода. ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ повÑоÑÑÑÑ Ð¸ комбиниÑоваÑÑ Ð² лÑбом поÑÑдке Ñ ÐºÐ»ÑÑом-c. ÐÑли Ñказан клÑÑ-cили-f, пÑогÑамма psql не ÑиÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñо ÑÑандаÑÑного ввода; вмеÑÑо ÑÑого она завеÑÑаеÑÑÑ Ð¿Ð¾Ñле обÑабоÑки вÑÐµÑ ÐºÐ»ÑÑей-cи-fпо оÑеÑеди. Ðе ÑÑиÑÐ°Ñ ÑÑого, даннÑй клÑÑ Ð¿Ð¾ болÑÑÐ¾Ð¼Ñ ÑÑÑÑÑ ÑавнознаÑен меÑакоманде\i.ÐÑли
имÑ_Ñайлазадано Ñимволом-(минÑÑ), ÑÑиÑÑваеÑÑÑ ÑÑандаÑÑнÑй ввод до пÑизнака конÑа Ñайла или до меÑакомандÑ\q. ÐÑо позволÑÐµÑ Ð¿ÐµÑемежаÑÑ Ð¸Ð½ÑеÑакÑивнÑй ввод Ñ Ð²Ð²Ð¾Ð´Ð¾Ð¼ из Ñайлов. Ðднако замеÑÑÑе, ÑÑо Readline в ÑÑом ÑлÑÑае не пÑименÑеÑÑÑ (Ñак же, как и Ñ ÐºÐ»ÑÑом-n).ÐÑполÑзование ÑÑого паÑамеÑÑа немного оÑлиÑаеÑÑÑ Ð¾Ñ
psql <. РоÑновном, оба ваÑианÑа бÑдÑÑ Ð´ÐµÐ»Ð°ÑÑ Ñо, ÑÑо Ð²Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑе, но ÑимÑ_Ñайла-fдоÑÑÑÐ¿Ð½Ñ Ð½ÐµÐºÐ¾ÑоÑÑе полезнÑе ÑвойÑÑва, Ñакие как ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ Ñ Ð½Ð¾Ð¼ÐµÑами ÑÑÑок. Также еÑÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ°Ñ Ð²ÐµÑоÑÑноÑÑÑ, ÑÑо запÑÑк в Ñаком Ñежиме бÑÐ´ÐµÑ Ð±ÑÑÑÑее. С дÑÑгой ÑÑоÑонÑ, ваÑÐ¸Ð°Ð½Ñ Ñ Ð¿ÐµÑенапÑавлением ввода из командного инÑеÑпÑеÑаÑоÑа (в ÑеоÑии) гаÑанÑиÑÑÐµÑ Ð¿Ð¾Ð»ÑÑение ÑоÑно Ñакого же вÑвода, какой Ð²Ñ Ð¿Ð¾Ð»ÑÑили бÑ, еÑли Ð±Ñ Ð²Ð²ÐµÐ»Ð¸ вÑÑ Ð²ÑÑÑнÑÑ.-FÑазделиÑелÑ--field-separator=#ÑазделиÑелÑÐÑполÑзование
ÑазделиÑелÑв каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ пÑи невÑÑовненном Ñежиме вÑвода. ÐквиваленÑно\pset fieldsepили\f.-hкомпÑÑÑеÑ--host=#компÑÑÑеÑУказÑÐ²Ð°ÐµÑ Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, на коÑоÑом ÑабоÑÐ°ÐµÑ ÑеÑвеÑ. ÐÑли знаÑение наÑинаеÑÑÑ Ñ ÐºÐ¾Ñой ÑеÑÑÑ, оно опÑеделÑÐµÑ ÐºÐ°Ñалог Unix-ÑокеÑа.
-H--html#ÐеÑеклÑÑÐ°ÐµÑ Ð² Ñежим вÑвода HTML. РавнознаÑно команде
\pset format htmlили\H.-l--list#ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÐµÑ Ð´Ð¾ÑÑÑпнÑÑ Ð±Ð°Ð· даннÑÑ Ð¸ завеÑÑÐ°ÐµÑ ÑабоÑÑ. ÐÑÑгие паÑамеÑÑÑ, не ÑвÑзаннÑе Ñ Ñоединением, игноÑиÑÑÑÑÑÑ. ÐÑо Ð¿Ð¾Ñ Ð¾Ð¶Ðµ на меÑакомандÑ
\list.Ðогда иÑполÑзÑеÑÑÑ ÑÑÐ¾Ñ Ð°ÑгÑменÑ, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº базе даннÑÑ
postgres, еÑли ÑолÑко в командной ÑÑÑоке не задана дÑÑÐ³Ð°Ñ Ð±Ð°Ð·Ð° даннÑÑ (в паÑамеÑÑе-dили не ÑеÑез паÑамеÑÑÑ, а, напÑимеÑ, ÑеÑез запиÑÑ ÑлÑжбÑ, но не ÑеÑез пеÑеменнÑÑ Ð¾ÐºÑÑжениÑ).-LимÑ_Ñайла--log-file=#имÑ_ÑайлаРдополнение к обÑÑÐ½Ð¾Ð¼Ñ Ð²ÑводÑ, запиÑÑÐ²Ð°ÐµÑ Ð²Ñвод ÑезÑлÑÑаÑов вÑÐµÑ Ð·Ð°Ð¿ÑоÑов в Ñайл
имÑ_Ñайла.-n--no-readline#ÐÑклÑÑÐ°ÐµÑ Ð¸ÑполÑзование Readline Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки и иÑполÑзование иÑÑоÑии команд (Ñм. ÐодÑаздел «РедакÑиÑование командной ÑÑÑоки» ниже).
-oимÑ_Ñайла--output=#имÑ_ÑайлаÐапиÑÑÐ²Ð°ÐµÑ Ð²Ñвод ÑезÑлÑÑаÑов вÑÐµÑ Ð·Ð°Ð¿ÑоÑов в Ñайл
имÑ_Ñайла. ÐквиваленÑно команде\o.-pпоÑÑ--port=#поÑÑУказÑÐ²Ð°ÐµÑ TCP-поÑÑ Ð¸Ð»Ð¸ ÑаÑÑиÑение Ñайла локалÑного Unix-ÑокеÑа, ÑеÑез коÑоÑÑй ÑеÑÐ²ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð¿ÐµÑеменной ÑÑедÑ
PGPORT, еÑли она ÑÑÑановлена, либо ÑиÑлом, заданнÑм пÑи компилÑÑии, обÑÑно 5432.-PпÑиÑваивание--pset=#пÑиÑваиваниеÐадаÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¿ÐµÑаÑи, в ÑÑиле командÑ
\pset. ÐбÑаÑиÑе внимание, ÑÑо Ð¸Ð¼Ñ Ð¿Ð°ÑамеÑÑа и знаÑение ÑазделÑÑÑÑÑ Ð·Ð½Ð°ÐºÐ¾Ð¼ ÑавенÑÑва, а не пÑобела. ÐапÑимеÑ, ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ ÑоÑÐ¼Ð°Ñ Ð²Ñвода в LaTeX, нÑжно напиÑаÑÑ-P format=latex.-q--quiet#УказÑваеÑ, ÑÑо psql должен ÑабоÑаÑÑ Ð±ÐµÐ· вÑвода дополниÑелÑнÑÑ ÑообÑений. Ðо ÑмолÑаниÑ, вÑводÑÑÑÑ Ð¿ÑивеÑÑÑÐ²Ð¸Ñ Ð¸ ÑазлиÑнÑе инÑоÑмаÑионнÑе ÑообÑениÑ. ÐÑого не пÑоизойдÑÑ Ñ Ð¸ÑполÑзованием данного паÑамеÑÑа. Ðолезно вмеÑÑе Ñ Ð¿Ð°ÑамеÑÑом
-c. ÐÑÐ¾Ñ Ð¶Ðµ ÑÑÑÐµÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ полÑÑиÑÑ, ÑÑÑановив Ð´Ð»Ñ Ð¿ÐµÑеменнойQUIETзнаÑениеon.-RÑазделиÑелÑ--record-separator=#ÑазделиÑелÑÐÑполÑзоваÑÑ
ÑазделиÑелÑкак ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¸Ñей пÑи невÑÑовненном Ñежиме вÑвода. РавнознаÑно команде\pset recordsep.-s--single-step#ÐапÑÑк в поÑаговом Ñежиме. ÐÑо ознаÑаеÑ, ÑÑо полÑзоваÑÐµÐ»Ñ Ð±ÑÐ´ÐµÑ Ð¿Ð¾Ð´ÑвеÑждаÑÑ Ð²Ñполнение каждой командÑ, оÑпÑавлÑемой на ÑеÑвеÑ, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ Ð¾ÑмениÑÑ Ð²Ñполнение. ÐÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¾Ñладки ÑкÑипÑов.
-S--single-line#ÐапÑÑк в одноÑÑÑоÑном Ñежиме, пÑи коÑоÑом Ñимвол новой ÑÑÑоки завеÑÑÐ°ÐµÑ SQL-командÑ, Ñак же как ÑÑо Ð´ÐµÐ»Ð°ÐµÑ ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой.
ÐÑимеÑание
ÐÑÐ¾Ñ Ñежим Ñеализован Ð´Ð»Ñ ÑÐµÑ , ÐºÐ¾Ð¼Ñ Ð¾Ð½ нÑжен, но ÑÑо не обÑзаÑелÑно ознаÑаеÑ, ÑÑо и вам нÑжно его иÑполÑзоваÑÑ. Ð ÑаÑÑноÑÑи, еÑли ÑмеÑиваÑÑ Ð² одной ÑÑÑоке ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL и меÑакомандÑ, поÑÑдок Ð¸Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ вÑегда понÑÑен Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿ÑÑного полÑзоваÑелÑ.
-t--tuples-only#ÐÑклÑÑÐ°ÐµÑ Ð²Ñвод имÑн ÑÑолбÑов и ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом вÑбÑаннÑÑ Ð·Ð°Ð¿Ð¸Ñей. РавнознаÑно команде
\tили\pset tuples_only.-TпаÑамеÑÑÑ_ÑаблиÑÑ--table-attr=#паÑамеÑÑÑ_ÑаблиÑÑÐадаÑÑ Ð°ÑÑибÑÑÑ, коÑоÑÑе бÑдÑÑ Ð²ÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² Ñег HTML
table. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº опиÑаниÑ\pset tableattr.-UимÑ_полÑзоваÑелÑ--username=#имÑ_полÑзоваÑелÑÐÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ
имÑ_полÑзоваÑелÑвмеÑÑо подÑазÑмеваемого по ÑмолÑаниÑ. (РазÑмееÑÑÑ, ÑÑо поÑÑебÑÐµÑ ÑооÑвеÑÑÑвÑÑÑего ÑазÑеÑениÑ.)-vпÑиÑваивание--set=пÑиÑваивание--variable=#пÑиÑваиваниеÐÑполнÑÐµÑ Ð¿ÑиÑваивание знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной, как меÑакоманда
\set. ÐбÑаÑиÑе внимание, ÑÑо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ Ð¸Ð¼Ñ Ð¿ÐµÑеменной и знаÑение (пÑи налиÑии) знаком ÑавенÑÑва в командной ÑÑÑоке. ЧÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ Ð¿ÐµÑеменнÑÑ, оÑÑавÑÑе Ð¸Ð¼Ñ Ð¿ÐµÑеменной без знака ÑавенÑÑва. ЧÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð¿ÑÑÑое знаÑение, добавÑÑе знак ÑавенÑÑва, но опÑÑÑиÑе знаÑение. ÐÑи пÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²ÑполнÑÑÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ Ð¾Ð±ÑабоÑки командной ÑÑÑоки, Ñак ÑÑо пеÑеменнÑе, оÑÑажаÑÑие ÑоÑÑоÑние ÑоединениÑ, бÑдÑÑ Ð¿ÐµÑезапиÑÐ°Ð½Ñ Ð¿Ð¾Ð·Ð¶Ðµ.-V--version#ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð²ÐµÑÑÐ¸Ñ psql и завеÑÑÐ°ÐµÑ ÑабоÑÑ.
-w--no-password#Ðе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð· дÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников, напÑÐ¸Ð¼ÐµÑ Ð¸Ð· Ñайла
.pgpass, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð½Ð° пÑоÑÑжении вÑего ÑеанÑа и, Ñаким обÑазом, влиÑÐµÑ Ð½Ð° меÑакомандÑ
\connect, Ñак же как и на пеÑвÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ ÑоединениÑ.-W--password#ÐÑинÑдиÑелÑно запÑаÑиваÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÐµÑед подклÑÑением к базе даннÑÑ , даже еÑли он не бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ.
ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð· дÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников, напÑÐ¸Ð¼ÐµÑ Ð¸Ð· Ñайла
.pgpass, psql запÑоÑÐ¸Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð² лÑбом ÑлÑÑае. Ðднако ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ, ÑÑо ÑÑебÑеÑÑÑ Ð¿Ð°ÑолÑ, psql лиÑний Ñаз подклÑÑиÑÑÑ Ðº ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ввеÑÑи-W, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð½Ð° пÑоÑÑжении вÑего ÑеанÑа и, Ñаким обÑазом, влиÑÐµÑ Ð½Ð° меÑакомандÑ
\connect, Ñак же как и на пеÑвÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ ÑоединениÑ.-x--expanded#ÐклÑÑÐ°ÐµÑ Ñежим ÑазвÑÑнÑÑого вÑвода ÑаблиÑÑ. РавнознаÑно команде
\xили\pset expanded.-X--no-psqlrc#Ðе ÑиÑаÑÑ ÑÑаÑÑовÑе ÑÐ°Ð¹Ð»Ñ (ни обÑеÑиÑÑемнÑй Ñайл
psqlrc, ни полÑзоваÑелÑÑкий Ñайл~/.psqlrc).-z--field-separator-zero#УÑÑановиÑÑ Ð½Ñлевой Ð±Ð°Ð¹Ñ Ð² каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода. РавнознаÑно команде
\pset fieldsep_zero.-0--record-separator-zero#УÑÑановиÑÑ Ð½Ñлевой Ð±Ð°Ð¹Ñ Ð² каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода. ÐÑо полезно пÑи взаимодейÑÑвии Ñ Ð´ÑÑгими пÑогÑаммами, напÑимеÑ, Ñ
xargs -0. РавнознаÑно команде\pset recordsep_zero.-1--single-transaction#ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑко в ÑоÑеÑании Ñ Ð¾Ð´Ð½Ð¸Ð¼ или неÑколÑкими паÑамеÑÑами
-cи/или-f. С ним psql вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑBEGINпеÑед обÑабоÑкой пеÑвого Ñакого паÑамеÑÑа иCOMMITпоÑле поÑледнего, завоÑаÑÐ¸Ð²Ð°Ñ Ñаким обÑазом вÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² Ð¾Ð´Ð½Ñ ÑÑанзакÑиÑ. ÐÑли какаÑ-либо из команд завеÑÑилаÑÑ Ð¾Ñибкой и бÑла ÑÑÑановлена пеÑеменнаÑON_ERROR_STOP, вмеÑÑоCOMMITпеÑедаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°ROLLBACK. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо либо вÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð²ÐµÑÑаÑÑÑ ÑÑпеÑно, либо никакие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑÐ¾Ñ ÑанÑÑÑÑ.ÐÑли в ÑÐ°Ð¼Ð¸Ñ ÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ ÑодеÑжаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ
BEGIN,COMMITилиROLLBACK, ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ даÑÑ Ð¶ÐµÐ»Ð°ÐµÐ¼Ð¾Ð³Ð¾ ÑÑÑекÑа. ÐÑоме Ñого, еÑли какаÑ-либо оÑделÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° не Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð²Ð½ÑÑÑи блока ÑÑанзакÑии, Ñ ÑÑим паÑамеÑÑом вÑÑ ÑÑанзакÑÐ¸Ñ Ð¿ÑеÑвÑÑÑÑ Ñ Ð¾Ñибкой.-?--help[=#Ñема]ÐоказаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ psql и завеÑÑиÑÑÑÑ. ÐеобÑзаÑелÑнÑй паÑамеÑÑ
Ñема(по ÑмолÑаниÑoptions) вÑбиÑÐ°ÐµÑ Ð¾Ð¿Ð¸Ñание инÑеÑеÑÑÑÑей ÑаÑÑи psql:commandsопиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой;optionsопиÑÑÐ²Ð°ÐµÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, коÑоÑÑе можно пеÑедаÑÑ psql; аvariablesвÑдаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ пеÑеменнÑм конÑигÑÑаÑии psql.
Ðод завеÑÑениÑ
ÐÑи ноÑмалÑном завеÑÑении psql возвÑаÑÐ°ÐµÑ 0 в команднÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑÐºÑ ÐС, 1 â еÑли пÑоизоÑла кÑиÑиÑеÑÐºÐ°Ñ Ð¾Ñибка в Ñамом psql (напÑимеÑ, неÑ
ваÑка памÑÑи, Ñайл не найден), 2 â пÑи неÑдаÑном Ñоединении Ñ ÑеÑвеÑом неинÑеÑакÑивного ÑеанÑа, 3 â пÑи оÑибке в ÑкÑипÑе и ÑÑÑановленной пеÑеменной ON_ERROR_STOP.
ÐÑполÑзование
ÐодклÑÑение к базе даннÑÑ #
psql ÑÑо ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð»Ñ Postgres Pro. ÐÐ»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ
нÑжно знаÑÑ Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ð¸Ð¼Ñ ÑеÑвеÑа, Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа ÑеÑвеÑа и Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ ÐÐ, под коÑоÑÑм Ð²Ñ Ñ
оÑиÑе подклÑÑиÑÑÑÑ. ÐÑи ÑвойÑÑва можно задаÑÑ ÑеÑез аÑгÑменÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, а именно -d, -h, -p и -U ÑооÑвеÑÑÑвенно. ÐÑли в командной ÑÑÑоке еÑÑÑ Ð°ÑгÑменÑ, коÑоÑÑй не оÑноÑиÑÑÑ Ðº паÑамеÑÑам psql, Ñо он иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
(или имени полÑзоваÑÐµÐ»Ñ ÐÐ, еÑли база даннÑÑ
Ñже задана). ÐадаваÑÑ Ð²Ñе ÑÑи аÑгÑменÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑно, Ñ Ð½Ð¸Ñ
еÑÑÑ ÑазÑмнÑе знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐÑли опÑÑÑиÑÑ Ð¸Ð¼Ñ ÑеÑвеÑа, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ ÑеÑез Unix-ÑÐ¾ÐºÐµÑ Ðº локалÑÐ½Ð¾Ð¼Ñ ÑеÑвеÑÑ, либо подклÑÑаÑÑÑÑ Ðº localhost по TCP/IP в Windows. ÐÐ¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии. ÐоÑколÑÐºÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
иÑполÑзÑÐµÑ Ñо же знаÑение по ÑмолÑаниÑ, ÑаÑе вÑего ÑказÑваÑÑ Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа не нÑжно. ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐоÑле опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ полÑзоваÑÐµÐ»Ñ ÐРоно иÑполÑзÑеÑÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
по ÑмолÑаниÑ. ÐамеÑÑÑе, ÑÑо пÑоÑÑо Ñак подклÑÑаÑÑÑÑ Ðº лÑбой базе даннÑÑ
под лÑбÑм именем полÑзоваÑÐµÐ»Ñ ÐÐ Ð²Ñ Ð½Ðµ ÑможеÑе. УзнаÑÑ Ð¾ ваÑиÑ
пÑаваÑ
можно Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑа баз даннÑÑ
.
ÐÑли знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ðµ подÑ
одÑÑ, можно ÑÑкономиÑÑ Ð½Ð° вводе паÑамеÑÑов подклÑÑениÑ, ÑÑÑановив пеÑеменнÑе ÑÑÐµÐ´Ñ PGDATABASE, PGHOST, PGPORT и/или PGUSER. (ÐÑÑгие пеÑеменнÑе ÑÑÐµÐ´Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² Разделе 33.15.) Также Ñдобно имеÑÑ Ñайл ~/.pgpass, ÑÑÐ¾Ð±Ñ Ð½Ðµ вводиÑÑ Ð¿Ð°Ñоли Ñнова и Ñнова. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº РазделÑ 33.16.
ÐлÑÑеÑнаÑивнÑй ваÑÐ¸Ð°Ð½Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов подклÑÑÐµÐ½Ð¸Ñ â иÑполÑзование ÑÑÑоки conninfo или URI вмеÑÑо имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑÐ¾Ñ Ð¼ÐµÑ
анизм даÑÑ ÑиÑокие возможноÑÑи Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñоединением. ÐапÑимеÑ:
$psql "service=myservice sslmode=require"$psql postgresql://dbmaster:5433/mydb?sslmode=require
ÐÑÐ¾Ñ ÑпоÑоб Ñакже позволÑÐµÑ Ð¸ÑполÑзоваÑÑ LDAP Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов подклÑÑениÑ, как опиÑано в Разделе 33.18. Ðолее полно вÑе имеÑÑиеÑÑ Ð¿Ð°ÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² ÐодÑазделе 33.1.2.
ÐÑли Ñоединение не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑановлено по лÑбой пÑиÑине (напÑимеÑ, Ð½ÐµÑ Ð¿Ñав, ÑеÑÐ²ÐµÑ Ð½Ðµ ÑабоÑÐ°ÐµÑ Ð¸ Ñ. д.), psql веÑнÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¸ пÑекÑаÑÐ¸Ñ ÑабоÑÑ.
ÐÑли и ÑÑандаÑÑнÑй ввод, и ÑÑандаÑÑнÑй вÑвод ÑвлÑÑÑÑÑ ÑеÑминалом, Ñо psql ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñа в «auto», и подÑ
одÑÑÐ°Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑÑÑÑÑ Ð¸Ð· локалÑнÑÑ
ÑÑÑановок (пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ LC_CTYPE в Unix). ÐÑли ÑÑо ÑабоÑÐ°ÐµÑ Ð½Ðµ Ñак, как ожидалоÑÑ, кодиÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñа можно измениÑÑ, ÑÑÑановив пеÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ PGCLIENTENCODING.
Ðвод SQL-команд #
Ðак пÑавило, пÑиглаÑение psql ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, к коÑоÑой psql в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн, а заÑем ÑÑÑоки =>. ÐапÑимеÑ:
$ psql testdb
psql (16.11.1)
Type "help" for help.
testdb=>Ркомандной ÑÑÑоке полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð²Ð¾Ð´Ð¸ÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL. ÐбÑÑно введÑннÑе ÑÑÑоки оÑпÑавлÑÑÑÑÑ Ð½Ð° ÑеÑвеÑ, когда вÑÑÑеÑаеÑÑÑ ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой, завеÑÑаÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ. ÐÐ¾Ð½ÐµÑ ÑÑÑоки не завеÑÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ. ÐÑо позволÑÐµÑ ÑазбиваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð° неÑколÑко ÑÑÑок Ð´Ð»Ñ Ð»ÑÑÑего пониманиÑ. ÐÑли команда бÑла оÑпÑавлена и вÑполнена без оÑибок, Ñо ÑезÑлÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²ÑводиÑÑÑ Ð½Ð° ÑкÑан.
ÐÑли к базе даннÑÑ
, коÑоÑÐ°Ñ Ð½Ðµ пÑиведена в ÑооÑвеÑÑÑвие ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑ
ем, имеÑÑ Ð´Ð¾ÑÑÑп недовеÑеннÑе полÑзоваÑели, наÑинайÑе ÑÐµÐ°Ð½Ñ Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпнÑÑ
им Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ÑÑ
ем из пÑÑи поиÑка (search_path). ÐÐ»Ñ ÑÑого можно добавиÑÑ options=-csearch_path= в ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SELECT pg_catalog.set_config('search_path', '', false) пеÑед дÑÑгими командами SQL. ÐÑо каÑаеÑÑÑ Ð½Ðµ ÑолÑко psql, но и лÑбÑÑ
дÑÑгиÑ
инÑеÑÑейÑов Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑоизволÑнÑÑ
SQL-команд.
ÐÑи каждом вÑполнении ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql Ñакже пÑовеÑÑÐµÑ Ð°ÑинÑ
ÑоннÑе ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ ÑобÑÑиÑÑ
, генеÑиÑÑемÑе командами LISTEN и NOTIFY.
ÐомменÑаÑии в ÑÑиле C пеÑедаÑÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑабоÑки на ÑеÑвеÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº комменÑаÑии в ÑÑандаÑÑе SQL psql ÑдалÑÐµÑ Ð¿ÐµÑед оÑпÑавкой.
ÐеÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ #
ÐÑÑ, ÑÑо вводиÑÑÑ Ð² psql не взÑÑое в кавÑÑки и наÑинаÑÑееÑÑ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑÑ, ÑвлÑеÑÑÑ Ð¼ÐµÑакомандой psql и обÑабаÑÑваеÑÑÑ Ñамим psql. ÐÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´ÐµÐ»Ð°ÑÑ psql полезнÑм Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑазÑабоÑки ÑкÑипÑов.
ФоÑÐ¼Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql ÑледÑÑÑий: обÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ ÑеÑÑа, ÑÑÐ°Ð·Ñ Ð·Ð° ней команда, заÑем аÑгÑменÑÑ. ÐÑгÑменÑÑ Ð¾ÑделÑÑÑÑÑ Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸ дÑÑг Ð¾Ñ Ð´ÑÑга лÑбÑм колиÑеÑÑвом пÑобелов.
ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð¿Ñобел в знаÑение аÑгÑменÑа, нÑжно заклÑÑиÑÑ ÐµÐ³Ð¾ в одинаÑнÑе кавÑÑки. ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð¾Ð´Ð¸Ð½Ð°ÑнÑÑ ÐºÐ°Ð²ÑÑÐºÑ Ð² знаÑение аÑгÑменÑа, нÑжно напиÑаÑÑ Ð´Ð²Ðµ одинаÑнÑе кавÑÑки внÑÑÑи ÑекÑÑа в одинаÑнÑÑ
кавÑÑкаÑ
. ÐÑÑ, ÑÑо ÑодеÑжиÑÑÑ Ð² одинаÑнÑÑ
кавÑÑкаÑ
Ð¿Ð¾Ð´Ð»ÐµÐ¶Ð¸Ñ Ð·Ð°Ð¼ÐµÐ½Ð°Ð¼, пÑинÑÑÑм в ÑзÑке C: \n (Ð½Ð¾Ð²Ð°Ñ ÑÑÑока), \t (ÑабÑлÑÑиÑ), \b (backspace), \r (возвÑÐ°Ñ ÐºÐ°ÑеÑки), \f (подаÑа ÑÑÑаниÑÑ), \ÑиÑÑÑ (воÑÑмеÑиÑное ÑиÑло), и \xÑиÑÑÑ (ÑеÑÑнадÑаÑеÑиÑное ÑиÑло). ÐÑли внÑÑÑи ÑекÑÑа в одинаÑнÑÑ
кавÑÑкаÑ
вÑÑÑеÑаеÑÑÑ Ð¾Ð±ÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ Ð¿ÐµÑед лÑбÑм дÑÑгим Ñимволом, Ñо она ÑкÑаниÑÑÐµÑ ÑÑÐ¾Ñ Ñимвол.
ÐÑли внÑÑÑи аÑгÑменÑа не в кавÑÑкаÑ
вÑÑÑеÑаеÑÑÑ Ð¸Ð¼Ñ Ð¿ÐµÑеменной psql Ñ Ð¿ÑедÑеÑÑвÑÑÑим двоеÑоÑием (:), оно заменÑеÑÑÑ Ð·Ð½Ð°Ñением пеÑеменной, как опиÑано в Ñазделе ÐнÑеÑполÑÑÐ¸Ñ SQL ниже. Также бÑдÑÑ ÑабоÑаÑÑ Ð¾Ð¿Ð¸ÑаннÑе Ñам ÑоÑÐ¼Ñ :' и имÑ_пеÑеменной':". ÐонÑÑÑÑкÑÐ¸Ñ Ð¸Ð¼Ñ_пеÑеменной":{? позволÑÐµÑ Ð¿ÑовеÑиÑÑ, опÑеделена ли пеÑеменнаÑ. Ðна заменÑеÑÑÑ Ð·Ð½Ð°Ñением TRUE или FALSE. ÐкÑаниÑование обÑаÑной коÑой ÑеÑÑой заÑиÑÐ°ÐµÑ Ð´Ð²Ð¾ÐµÑоÑие Ð¾Ñ Ð·Ð°Ð¼ÐµÐ½Ñ.имÑ_пеÑеменной}
ТекÑÑ Ð°ÑгÑменÑа, заклÑÑÑннÑй в обÑаÑнÑе кавÑÑки (`), ÑÑиÑаеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑокой, коÑоÑÐ°Ñ Ð¿ÐµÑедаÑÑÑÑ Ð² команднÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑÐºÑ ÐС. ÐÑвод Ð¾Ñ ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ (Ñ ÑдалÑннÑми в конÑе Ñимволами новой ÑÑÑоки) заменÑÐµÑ ÑекÑÑ Ð² обÑаÑнÑÑ
кавÑÑкаÑ
. Ð ÑодеÑжимом ÑÑого ÑекÑÑа не обÑабаÑÑваÑÑÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¸Ðµ ÑпеÑпоÑледоваÑелÑноÑÑи или оÑобÑе знаки, за иÑклÑÑением Ñого, ÑÑо вÑе вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ :, где имÑ_пеÑеменнойимÑ_пеÑеменной â ÑÑо Ð¸Ð¼Ñ Ð¿ÐµÑеменной psql, заменÑÑÑÑÑ Ð·Ð½Ð°Ñением ÑÑой пеÑеменной. Также вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ :' заменÑÑÑÑÑ Ð·Ð½Ð°Ñением пеÑеменной, заклÑÑÑннÑм в апоÑÑÑоÑÑ Ñ Ñем, ÑÑо ÑÑо бÑло одним аÑгÑменÑом ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñки. (ÐоÑледнÑÑ ÑоÑма поÑÑи вÑегда более пÑедпоÑÑиÑелÑна, еÑли ÑолÑко Ð²Ñ Ð½Ðµ абÑолÑÑно ÑоÑно знаеÑе, Ñего ожидаÑÑ Ð² пеÑеменной.) Так как ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¿ÐµÑевода ÑÑÑоки и возвÑаÑа каÑеÑки могÑÑ Ð±ÑÑÑ Ð½Ð°Ð´Ñжно ÑкÑаниÑÐ¾Ð²Ð°Ð½Ñ Ð½Ðµ на вÑеÑ
плаÑÑоÑмаÑ
, ÑоÑма имÑ_пеÑеменной':' вÑÐ²Ð¾Ð´Ð¸Ñ ÑообÑение об оÑибке и подÑÑановка знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной не пÑоизводиÑÑÑ, когда ÑÑо знаÑение ÑодеÑÐ¶Ð¸Ñ Ñакие ÑимволÑ.имÑ_пеÑеменной'
ÐекоÑоÑÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑинимаÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ SQL (напÑимеÑ, Ð¸Ð¼Ñ ÑаблиÑÑ) в каÑеÑÑве аÑгÑменÑа. Такие аÑгÑменÑÑ ÑледÑÑÑ Ð¿Ñавилам ÑинÑакÑиÑа SQL: бÑквÑ, не взÑÑÑе в кавÑÑки, пÑеобÑазÑÑÑÑÑ Ð² нижний ÑегиÑÑÑ, бÑквÑ, взÑÑÑе в двойнÑе кавÑÑки (") пÑедоÑвÑаÑаÑÑ Ð¿ÑеобÑазование ÑегиÑÑÑа и позволÑÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð¿ÑÐ¾Ð±ÐµÐ»Ñ Ð² иденÑиÑикаÑоÑ. ÐнÑÑÑи двойнÑÑ
кавÑÑек две двойнÑе кавÑÑки ÑокÑаÑаÑÑÑÑ Ð´Ð¾ одной. ÐапÑимеÑ, FOO"BAR"BAZ инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº fooBARbaz, а "A weird"" name" ÑÑановиÑÑÑ A weird" name.
Ð Ð°Ð·Ð±Ð¾Ñ Ð°ÑгÑменÑов оÑÑанавливаеÑÑÑ Ð² конÑе ÑÑÑоки или когда вÑÑÑеÑаеÑÑÑ Ð´ÑÑÐ³Ð°Ñ Ð¾Ð±ÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ ÑеÑÑа, не внÑÑÑи кавÑÑек. ÐбÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ Ð½Ðµ внÑÑÑи кавÑÑек ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº наÑало новой меÑакомандÑ. СпеÑиалÑÐ½Ð°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ \\ (две обÑаÑнÑÑ
коÑÑÑ
ÑеÑÑÑ) обознаÑÐ°ÐµÑ Ð¾ÐºÐ¾Ð½Ñание аÑгÑменÑов, далее пÑодолжаеÑÑÑ ÑÐ°Ð·Ð±Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ SQL, еÑли ÑаковÑе имеÑÑÑÑ. Таким обÑазом, ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL и psql можно Ñвободно ÑмеÑиваÑÑ Ð² одной ÑÑÑоке. Ðо в лÑбом ÑлÑÑае аÑгÑменÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ðµ могÑÑ Ð²ÑÑ
одиÑÑ Ð·Ð° пÑÐµÐ´ÐµÐ»Ñ ÑекÑÑей ÑÑÑоки.
Ðногие из меÑакоманд опеÑиÑÑÑÑ Ñ Ð±ÑÑеÑом ÑекÑÑего запÑоÑа. ÐÑÐ¾Ñ Ð±ÑÑÐµÑ ÑодеÑÐ¶Ð¸Ñ Ð¿ÑоизволÑнÑй ÑекÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ SQL, коÑоÑÑй бÑл введÑн, но еÑÑ Ð½Ðµ оÑпÑавлен ÑеÑвеÑÑ Ð´Ð»Ñ Ð²ÑполнениÑ. Рнего бÑдÑÑ Ð²Ñ Ð¾Ð´Ð¸ÑÑ Ð¸ пÑедÑдÑÑие ÑÑÑоки, а Ñакже ÑекÑÑ, ÑаÑположеннÑй в ÑÑÑоке меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÐµÑед ней.
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑледÑÑÑие меÑакомандÑ:
\a#ÐÑли ÑекÑÑий Ñежим вÑвода ÑаблиÑÑ Ð½ÐµÐ²ÑÑовненнÑй, Ñо он пеÑеклÑÑаеÑÑÑ Ð½Ð° вÑÑовненнÑй Ñежим. ÐÑли ÑекÑÑий Ñежим вÑÑовненнÑй, Ñо ÑÑÑанавливаеÑÑÑ Ð½ÐµÐ²ÑÑовненнÑй. ÐÑа команда поддеÑживаеÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи. См.
\psetÐ´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ обÑего ÑеÑениÑ.\bind[паÑамеÑÑ] ... #ÐадаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов Ð´Ð»Ñ ÑледÑÑÑего вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа, пеÑедаваемÑе в каÑеÑÑве меÑÑозаполниÑелей (
$1и Ñ. д.).ÐÑимеÑ:
INSERT INTO tbl1 VALUES ($1, $2) \bind 'first value' 'second value' \g
ÐÑа меÑакоманда ÑабоÑÐ°ÐµÑ Ð½Ðµ ÑолÑко Ñ
\g, но и Ñ Ð´ÑÑгими командами вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов, напÑимеÑ\gxи\gset.С ÑÑой командой иÑполÑзÑеÑÑÑ Ð½Ðµ пÑоÑÑой пÑоÑокол запÑоÑов, как в Ñ Ð¾Ð´Ðµ обÑÑной ÑабоÑÑ psql, а ÑаÑÑиÑеннÑй пÑоÑокол (Ñм. ÐодÑаздел 54.1.2). ÐоÑÑÐ¾Ð¼Ñ ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаÑÑиÑенного пÑоÑокола запÑоÑов из psql. (РаÑÑиÑеннÑй пÑоÑокол иÑполÑзÑеÑÑÑ Ð´Ð°Ð¶Ðµ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов без паÑамеÑÑов, и когда в ÑÑой команде паÑамеÑÑÑ Ð½Ðµ пеÑедаÑÑÑÑ.) Ðоманда влиÑÐµÑ ÑолÑко на ÑледÑÑÑий вÑполнÑемÑй запÑоÑ, а далÑнейÑие запÑоÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÐµÑедаваÑÑÑÑ Ð¿Ð¾ пÑоÑÑÐ¾Ð¼Ñ Ð¿ÑоÑоколÑ.
\cили\connect [ -reuse-previous=#on|off] [имÑ_бд[имÑ_полÑзоваÑелÑ] [компÑÑÑеÑ] [поÑÑ] |ÑÑÑока_подклÑÑениÑ]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð½Ð¾Ð²Ð¾Ðµ подклÑÑение к ÑеÑвеÑÑ Postgres Pro. ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказÑваÑÑ ÐºÐ°Ðº позиÑионно (один или неÑколÑко по ÑпиÑкÑ: база даннÑÑ , полÑзоваÑелÑ, компÑÑÑÐµÑ Ð¸ поÑÑ), Ñак и пеÑÐµÐ´Ð°Ð²Ð°Ñ Ð°ÑгÑменÑ
ÑÑÑока_подклÑÑениÑ(подÑобнее о ÑÑÑÐ¾ÐºÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 33.1.1). ÐÑли аÑгÑменÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ, новое подклÑÑение ÑÑÑанавливаеÑÑÑ Ñ Ñеми же паÑамеÑÑами, ÑÑо и пÑедÑдÑÑее.Указание в паÑамеÑÑе
имÑ_бд,имÑ_полÑзоваÑелÑ,компÑÑÑеÑилипоÑÑзнаÑениÑ-ÑавноÑилÑно опÑÑÐµÐ½Ð¸Ñ ÑÑого паÑамеÑÑа.Ðовое подклÑÑение Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¿ÑедÑдÑÑего â не ÑолÑко Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , полÑзоваÑелÑ, компÑÑÑÐµÑ Ð¸ поÑÑ, но и, напÑимеÑ,
Ñежим_ssl. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ð¸ÑполÑзÑÑÑÑÑ Ð¿Ð¾Ð²ÑоÑно пÑи позиÑионной запиÑи, но не когда заданаÑÑÑока_подклÑÑениÑ. ÐÑо поведение Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеопÑеделÑÑÑÑÑ Ð¿ÐµÑвÑм аÑгÑменÑом,-reuse-previous=onили-reuse-previous=off. Ð ÑлÑÑае повÑоÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов лÑбой паÑамеÑÑ, Ñвно не заданнÑй в виде позиÑионного или вÑÑÑоке_подклÑÑениÑ, заимÑÑвÑеÑÑÑ Ð¸Ð· паÑамеÑÑов ÑекÑÑего подклÑÑениÑ. ÐÑклÑÑение ÑоÑÑавлÑÐµÑ Ð¿Ð°ÑамеÑÑhostaddrâ еÑли он бÑл задан в пÑедÑдÑÑем подклÑÑении, а в новом в позиÑионной запиÑи задаÑÑÑÑ Ð´ÑÑгое знаÑениеhost, знаÑениеhostaddrÑбÑаÑÑваеÑÑÑ. ÐÑоме Ñого, паÑÐ¾Ð»Ñ ÑÑÑеÑÑвÑÑÑего подклÑÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¿Ð¾Ð²ÑоÑно, ÑолÑко еÑли Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñзел и поÑÑ Ð½Ðµ менÑÑÑÑÑ. ÐÑли какой-либо паÑамеÑÑ Ð½Ðµ Ñказан в ÑÑой команде и не иÑполÑзÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑно, дейÑÑвÑÐµÑ Ð¿ÑинÑÑое в libpq знаÑение по ÑмолÑаниÑ.ÐÑли новое подклÑÑение ÑÑпеÑно ÑÑÑановлено, пÑедÑдÑÑее подклÑÑение закÑÑваеÑÑÑ. ÐÑли попÑÑка подклÑÑÐµÐ½Ð¸Ñ Ð½Ðµ ÑдалаÑÑ (невеÑное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, доÑÑÑп запÑеÑÑн и Ñ. д.), Ñо пÑедÑдÑÑее Ñоединение оÑÑанеÑÑÑ Ð°ÐºÑивнÑм, еÑли psql Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² инÑеÑакÑивном Ñежиме. Ðо еÑли ÑкÑÐ¸Ð¿Ñ Ð²ÑполнÑеÑÑÑ Ð½ÐµÐ¸Ð½ÑеÑакÑивно, пÑедÑдÑÑее Ñоединение закÑÑваеÑÑÑ Ð¸ вÑдаÑÑÑÑ Ð¾Ñибка. ÐÑи ÑÑом ÑкÑÐ¸Ð¿Ñ Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð¸Ð»Ð¸ не завеÑÑиÑÑÑÑ; в поÑледнем ÑлÑÑае вÑе командÑ, обÑаÑаÑÑиеÑÑ Ðº базе даннÑÑ , бÑдÑÑ Ð½ÐµÑÑпеÑнÑми, пока не бÑÐ´ÐµÑ ÑÑпеÑно вÑполнена еÑÑ Ð¾Ð´Ð½Ð° команда
\connect. РазлиÑное поведение вÑбÑано Ð´Ð»Ñ ÑдобÑÑва полÑзоваÑÐµÐ»Ñ Ð² каÑеÑÑве заÑиÑÑ Ð¾Ñ Ð¾Ð¿ÐµÑаÑок Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑоÑÐ¾Ð½Ñ Ð¸ в каÑеÑÑве меÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи, не позволÑÑÑей ÑлÑÑайно запÑÑÑиÑÑ ÑкÑипÑÑ Ð² непÑавилÑной базе, Ñ Ð´ÑÑгой. ÐамеÑÑÑе, ÑÑо когда команда\connectпÑÑаеÑÑÑ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑÑ, она иÑполÑзÑÐµÑ Ð¿Ð°ÑамеÑÑÑ Ð¿Ð¾Ñледнего ÑдаÑного подклÑÑениÑ, а не какой-либо из поÑледÑÑÑÐ¸Ñ Ð½ÐµÑдаÑнÑÑ Ð¿Ð¾Ð¿ÑÑок. Ðднако в ÑлÑÑае неÑдаÑи пÑи неинÑеÑакÑивном вÑполнении командÑ\connectникакие паÑамеÑÑÑ Ð½Ðµ бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð²Ð¿Ð¾ÑледÑÑвии, Ñак как ÑкÑипÑ, ÑкоÑее вÑего, ÑаÑÑÑиÑÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑÑой командÑ\connect, а она не бÑла ÑÑпеÑной.ÐÑимеÑÑ:
=> \c mydb myuser host.dom 6432 => \c service=foo => \c "host=localhost port=5432 dbname=mydb connect_timeout=10 sslmode=disable" => \c -reuse-previous=on sslmode=require -- менÑеÑÑÑ ÑолÑко sslmode => \c postgresql://tom@localhost/mydb?application_name=myapp
\C [#заголовок]ÐадаÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº, коÑоÑÑй бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð´Ð»Ñ ÑезÑлÑÑаÑов лÑбÑÑ Ð·Ð°Ð¿ÑоÑов или оÑменÑÐµÑ ÑÑÑановленнÑй Ñанее заголовок. ÐÑа команда ÑквиваленÑна
\pset title. (Ðазвание ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¾Ñ Â«caption» (заголовок), Ñак как изнаÑалÑно она пÑименÑлаÑÑ ÑолÑко Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² HTML-ÑаблиÑ.)заголовок\cd [#каÑалог]СменÑÐµÑ ÑекÑÑий ÑабоÑий каÑалог на
каÑалог. Ðез аÑгÑменÑа ÑÑÑанавливаеÑÑÑ Ð´Ð¾Ð¼Ð°Ñний каÑалог ÑекÑÑего полÑзоваÑелÑ.ÐодÑказка
Ð´Ð»Ñ Ð¿ÐµÑаÑи ÑекÑÑего ÑабоÑего каÑалога иÑполÑзÑйÑе
\! pwd.\conninfo#ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑекÑÑем подклÑÑении к базе даннÑÑ .
\copy {ÑаблиÑа[ (ÑпиÑок_ÑÑолбÑов) ] }from{'имÑ_Ñайла'| program'команда'| stdin | pstdin } [ [ with ] (паÑамеÑÑ[, ...] ) ] [ whereÑÑловие]\copy {#ÑаблиÑа[ (ÑпиÑок_ÑÑолбÑов) ] | (query) }to{'имÑ_Ñайла'| program'команда'| stdout | pstdout } [ [ with ] (паÑамеÑÑ[, ...] ) ]ÐÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñование даннÑÑ Ñ ÑÑаÑÑием клиенÑа. ÐÑи ÑÑом вÑполнÑеÑÑÑ SQL-команда
COPY, но вмеÑÑо ÑÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ запиÑи в Ñайл на ÑеÑвеÑе, psql ÑиÑÐ°ÐµÑ Ð¸Ð»Ð¸ запиÑÑÐ²Ð°ÐµÑ Ñайл и пеÑеÑÑÐ»Ð°ÐµÑ Ð´Ð°Ð½Ð½Ñе Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑом и локалÑной Ñайловой ÑиÑÑемой. ÐÑо ознаÑаеÑ, ÑÑо Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к Ñайлам иÑполÑзÑÑÑÑÑ Ð¿Ñивилегии локалÑного полÑзоваÑелÑ, а не ÑеÑвеÑа, и не ÑÑебÑÑÑÑÑ Ð¿Ñивилегии ÑÑпеÑполÑзоваÑÐµÐ»Ñ SQL.С Ñказанием
programpsql вÑполнÑеÑкомандÑи даннÑе, поÑÑÑпаÑÑие из/в неÑ, пеÑедаÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑеÑвеÑом и клиенÑом. ÐÑо опÑÑÑ Ð¶Ðµ ознаÑаеÑ, ÑÑо Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑогÑамм иÑполÑзÑÑÑÑÑ Ð¿Ñивилегии локалÑного полÑзоваÑелÑ, а не ÑеÑвеÑа, и не ÑÑебÑÑÑÑÑ Ð¿Ñивилегии ÑÑпеÑполÑзоваÑÐµÐ»Ñ SQL.ÐÑи вÑполнении
\copy ... from stdinÑÑÑоки Ñ Ð´Ð°Ð½Ð½Ñми ÑÑиÑÑваÑÑÑÑ Ð¸Ð· иÑÑоÑника, вÑполнивÑего командÑ, и ÑÑиÑÑваÑÑÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока не вÑÑÑеÑиÑÑÑ\.или не бÑÐ´ÐµÑ Ð´Ð¾ÑÑигнÑÑ ÐºÐ¾Ð½ÐµÑ Ñайла. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð¿ÑÑмо в SQL-ÑкÑипÑÐ°Ñ . ÐÑи вÑполнении\copy ... to stdoutвÑвод напÑавлÑеÑÑÑ Ð² Ñо же меÑÑо, ÑÑо и вÑвод psql команд. СÑаÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑCOPYне оÑобÑажаеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð½Ðµ пеÑепÑÑаÑÑ ÐµÐ³Ð¾ Ñо ÑÑÑокой даннÑÑ . ÐÐ»Ñ ÑÑениÑ/запиÑи ÑÑандаÑÑного ввода-вÑвода psql, вне завиÑимоÑÑи Ð¾Ñ Ð¸ÑÑоÑника ÑекÑÑей ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸Ð»Ð¸ паÑамеÑÑаcount\o, иÑполÑзÑйÑеfrom pstdinилиto pstdout.СинÑакÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿Ð¾Ñ Ð¾Ð¶ на ÑинÑакÑÐ¸Ñ SQL-командÑ
COPY. ÐÑе паÑамеÑÑÑ, кÑоме иÑÑоÑника и полÑÑаÑÐµÐ»Ñ Ð´Ð°Ð½Ð½ÑÑ , задаÑÑÑÑ Ñак же, как и вCOPY. ÐоÑÑÐ¾Ð¼Ñ Ð¿Ñи обÑабоÑке меÑакомандÑ\copyпÑименÑÑÑÑÑ Ð´ÑÑгие пÑавила ÑазбоÑа. РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд, Ð´Ð»Ñ Ð½ÐµÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ\copy, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.ÐодÑказка
ÐлÑÑеÑнаÑивнÑй ÑпоÑоб полÑÑиÑÑ ÑÐ¾Ñ Ð¶Ðµ ÑезÑлÑÑаÑ, ÑÑо и Ñ
\copy ... toâ иÑполÑзоваÑÑ SQL-командÑCOPY ... TO STDOUTи завеÑÑиÑÑ ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹\gилиимÑ\g |. РоÑлиÑие оÑпÑогÑамма\copy, ÑÑÐ¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ позволÑÐµÑ ÑазбиваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð° неÑколÑко ÑÑÑок, а Ñакже иÑполÑзоваÑÑ Ð¸Ð½ÑеÑполÑÑÐ¸Ñ Ð¿ÐµÑеменнÑÑ Ð¸ ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек (`).ÐодÑказка
ÐÑи опеÑаÑии не Ñак ÑÑÑекÑивнÑ, как SQL-команда
COPY, в коÑоÑой иÑÑоÑником или полÑÑаÑелем даннÑÑ ÑвлÑеÑÑÑ Ñайл или пÑогÑамма, поÑÐ¾Ð¼Ñ ÑÑо вÑе даннÑе пеÑемеÑаÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑÑмов даннÑÑ SQL-команда Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедпоÑÑиÑелÑнее. ÐÑоме Ñого, из-за ÑÑого меÑода Ñквозной пеÑедаÑи\copy ... fromв Ñежиме CSV оÑибоÑно обÑабаÑÑÐ²Ð°ÐµÑ ÐµÐ´Ð¸Ð½ÑÑвенное в ÑÑÑоке знаÑение даннÑÑ\.в каÑеÑÑве маÑкеÑа конÑа ввода.\copyright#ÐоказÑÐ²Ð°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾Ð± авÑоÑÑÐºÐ¸Ñ Ð¿ÑÐ°Ð²Ð°Ñ Ð¸ ÑÑловиÑÑ ÑаÑпÑоÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ Postgres Pro.
\crosstabview [#ÑÑолбÐ[ÑÑолбÐ[ÑÑолбТ[ÑÑолбÑоÑÑÐ] ] ] ]ÐÑполнÑÐµÑ ÑодеÑжимое бÑÑеÑа ÑекÑÑего запÑоÑа (как
\g) и показÑÐ²Ð°ÐµÑ ÑезÑлÑÑÐ°Ñ Ð² виде пеÑекÑÑÑÑной ÑаблиÑÑ. ÐаданнÑй запÑÐ¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ возвÑаÑаÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ñм ÑÑи ÑÑолбÑа. СÑÐ¾Ð»Ð±ÐµÑ ÑезÑлÑÑаÑа, заданнÑй паÑамеÑÑомÑÑолбÐ, бÑÐ´ÐµÑ Ð¾Ð±ÑазовÑваÑÑ Ð²ÐµÑÑикалÑнÑе заголовки, а ÑÑолбеÑ, заданнÑй паÑамеÑÑомÑÑолбÐ, â гоÑизонÑалÑнÑе. ÐаданнÑй паÑамеÑÑомÑÑолбТÑÑÐ¾Ð»Ð±ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿Ð¾ÑÑавлÑÑÑ Ð´Ð°Ð½Ð½Ñе Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð½ÑÑÑи ÑаблиÑÑ. СÑолбеÑ, вÑбÑаннÑй паÑамеÑÑомÑÑолбÑоÑÑÐ, бÑÐ´ÐµÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑм ÑÑолбÑом ÑоÑÑиÑовки гоÑизонÑалÑнÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð².Ðаждое Ñказание ÑÑолбÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑедÑÑавлÑÑÑ Ñобой Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð½Ð¾Ð¼ÐµÑ ÑÑолбÑа (наÑÐ¸Ð½Ð°Ñ Ñ 1). Рименам пÑименÑÑÑÑÑ Ð¾Ð±ÑÑнÑе пÑинÑÑÑе в SQL пÑавила ÑÑÑÑа ÑегиÑÑÑа и кавÑÑек. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð² каÑеÑÑве
ÑÑолбÐподÑазÑмеваеÑÑÑ ÑÑÐ¾Ð»Ð±ÐµÑ 1, а в каÑеÑÑвеÑÑолбÐâ ÑÑÐ¾Ð»Ð±ÐµÑ 2. ÐÑлиÑÑолбÐиÑÑолбÐзадаÑÑÑÑ Ñвно, они Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазлиÑаÑÑÑÑ. ÐÑлиÑÑолбТне задан, в ÑезÑлÑÑаÑе запÑоÑа должно бÑÑÑ Ñовно ÑÑи ÑÑолбÑа, и в каÑеÑÑвеÑÑолбТвÑбиÑаеÑÑÑ ÑÑолбеÑ, оÑлиÑнÑй оÑÑÑолбÐиÑÑолбÐ.ÐеÑÑикалÑнÑй заголовок, вÑводимÑй в Ñамом левом ÑÑолбÑе, ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð· ÑÑолбÑа
ÑÑолбÐ, в Ñом же поÑÑдке, в каком Ð¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð·Ð°Ð¿ÑоÑ, но без дÑбликаÑов.ÐоÑизонÑалÑнÑй заголовок, вÑводимÑй в пеÑвой ÑÑÑоке, ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð· ÑÑолбÑа
ÑÑолбÐ, без дÑбликаÑов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½Ð¸ ÑаÑполагаÑÑÑÑ Ð² Ñом поÑÑдке, в каком Ð¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ Ð·Ð°Ð¿ÑоÑ. Ðо еÑли задан необÑзаÑелÑнÑй аÑгÑменÑÑÑолбÑоÑÑÐ, он опÑеделÑÐµÑ ÑÑолбеÑ, коÑоÑÑй должен ÑодеÑжаÑÑ ÑелÑе ÑиÑла, и Ñогда знаÑÐµÐ½Ð¸Ñ Ð¸Ð·ÑÑолбÐбÑдÑÑ ÑаÑполагаÑÑÑÑ Ð² гоÑизонÑалÑном заголовке по поÑÑÐ´ÐºÑ Ð·Ð½Ð°Ñений вÑÑолбÑоÑÑÐ.ÐнÑÑÑи пеÑекÑÑÑÑной ÑаблиÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑникалÑного знаÑениÑ
xвÑÑолбÐи каждого ÑникалÑного знаÑениÑyвÑÑолбÐ, ÑÑейка, ÑазмеÑÑÐ½Ð½Ð°Ñ Ð½Ð° пеÑеÑеÑении(x,y)ÑодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°ÑениеÑÑолбТв ÑÑÑоке ÑезÑлÑÑаÑа запÑоÑа, в коÑоÑой знаÑениеÑÑолбÐÑавноx, а знаÑениеÑÑолбÐây. ÐÑли Ñакой ÑÑÑоки не Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ, ÑÑейка оÑÑаÑÑÑÑ Ð¿ÑÑÑой. ÐÑли же Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð½ÐµÑколÑко ÑÐ°ÐºÐ¸Ñ ÑÑÑок, вÑдаÑÑÑÑ Ð¾Ñибка.\d[S+] [#Ñаблон]ÐÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑноÑÐµÐ½Ð¸Ñ (ÑаблиÑÑ, пÑедÑÑавлениÑ, маÑеÑиализованного пÑедÑÑавлениÑ, индекÑа, поÑледоваÑелÑноÑÑи, внеÑней ÑаблиÑÑ) или ÑоÑÑавного Ñипа, ÑооÑвеÑÑÑвÑÑÑиÑ
ÑаблонÑ, показÑÐ²Ð°ÐµÑ Ð²Ñе ÑÑолбÑÑ, Ð¸Ñ ÑипÑ, ÑаблиÑное пÑоÑÑÑанÑÑво (еÑли оно изменено) и лÑбÑе ÑпеÑиалÑнÑе аÑÑибÑÑÑ, Ñакие какNOT NULLили знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. Также показÑваÑÑÑÑ ÑвÑзаннÑе индекÑÑ, огÑаниÑениÑ, пÑавила и ÑÑиггеÑÑ. ÐÐ»Ñ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ñакже показÑваеÑÑÑ ÑвÑзаннÑй ÑÑоÑонний ÑеÑвеÑ. («СооÑвеÑÑÑвие ÑаблонÑ» опÑеделÑеÑÑÑ Ð½Ð¸Ð¶Ðµ в Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка.)ÐÐ»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ñипов оÑноÑений
\dпоказÑÐ²Ð°ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÑолбÑÑ: знаÑÐµÐ½Ð¸Ñ ÑÑолбÑа Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей, индекÑиÑÑемÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов и паÑамеÑÑÑ Ð¾Ð±ÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ.ÐаÑÐ¸Ð°Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
\d+Ð¿Ð¾Ñ Ð¾Ð¶ на\d, но вÑÐ²Ð¾Ð´Ð¸Ñ Ð±Ð¾Ð»ÑÑе инÑоÑмаÑии: комменÑаÑии к ÑÑолбÑам ÑаблиÑÑ, налиÑие в ÑаблиÑе OID, ÑвойÑÑво replica identity, еÑли оно бÑло изменено, Ð¸Ð¼Ñ Ð¼ÐµÑода доÑÑÑпа, еÑли Ð´Ð»Ñ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑн меÑод доÑÑÑпа, а Ð´Ð»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑÑÑ ÐµÐ³Ð¾ опÑеделение.Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑобÑажаÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелем. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑ
S.ÐÑимеÑание
ÐÑли
\dиÑполÑзÑеÑÑÑ Ð±ÐµÐ· аÑгÑменÑаÑаблон, ÑÑа команда ÑдобÑÑва Ñади воÑпÑинимаеÑÑÑ ÐºÐ°Ðº\dtvmsEи вÑдаÑÑ ÑпиÑок вÑÐµÑ Ð²Ð¸Ð´Ð¸Ð¼ÑÑ ÑаблиÑ, пÑедÑÑавлений, маÑ. пÑедÑÑавлений, поÑледоваÑелÑноÑÑей и ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ.\da[S] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок агÑегаÑнÑÑ ÑÑнкÑий вмеÑÑе Ñ Ñипом возвÑаÑаемого знаÑÐµÐ½Ð¸Ñ Ð¸ Ñипами даннÑÑ , коÑоÑÑми они опеÑиÑÑÑÑ. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе агÑегаÑнÑе ÑÑнкÑии, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.\dA[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок меÑодов доÑÑÑпа. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе меÑÐ¾Ð´Ñ Ð´Ð¾ÑÑÑпа, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ меÑода доÑÑÑпа показÑваеÑÑÑ ÐµÐ³Ð¾ опиÑание и ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ ÑÑнкÑиÑ-обÑабоÑÑик.-
\dAc[+] [#Ñаблон-меÑодов-доÑÑÑпа[Ñаблон-Ð²Ñ Ð¾Ð´Ð½ÑÑ -Ñипов]] ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок клаÑÑов опеÑаÑоÑов (Ñм. ÐодÑаздел 37.16.1). ÐÑли Ñказан
Ñаблон-меÑодов-доÑÑÑпа, показÑваÑÑÑÑ ÑолÑко клаÑÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÐµÑ ÐµÐ¼Ñ. ÐÑли ÑказанÑаблон-Ð²Ñ Ð¾Ð´Ð½ÑÑ -Ñипов, показÑваÑÑÑÑ ÑолÑко клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов, ÑвÑзаннÑе Ñ Ð²Ñ Ð¾Ð´Ð½Ñми Ñипами, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÑаблонÑ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ клаÑÑа опеÑаÑоÑов дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ ÐµÐ³Ð¾ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¸ ÑвÑзанное Ñ Ð½Ð¸Ð¼ ÑемейÑÑво опеÑаÑоÑов.-
\dAf[+] [#Ñаблон-меÑодов-доÑÑÑпа[Ñаблон-Ð²Ñ Ð¾Ð´Ð½ÑÑ -Ñипов]] ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑемейÑÑв опеÑаÑоÑов (Ñм. ÐодÑаздел 37.16.5). ÐÑли Ñказан
Ñаблон-меÑодов-доÑÑÑпа, показÑваÑÑÑÑ ÑолÑко ÑемейÑÑва опеÑаÑоÑов, ÑвÑзаннÑе Ñ Ð¼ÐµÑодами доÑÑÑпа, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÑаблонÑ. ÐÑли ÑказанÑаблон-Ð²Ñ Ð¾Ð´Ð½ÑÑ -Ñипов, показÑваÑÑÑÑ ÑолÑко ÑемейÑÑва опеÑаÑоÑов, ÑвÑзаннÑе Ñ Ð²Ñ Ð¾Ð´Ð½Ñми Ñипами, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÑаблонÑ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑемейÑÑва опеÑаÑоÑов дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ ÐµÐ³Ð¾ владелеÑ.-
\dAo[+] [#Ñаблон-меÑодов-доÑÑÑпа[Ñаблон-ÑемейÑÑв-опеÑаÑоÑов]] ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок опеÑаÑоÑов, ÑвÑзаннÑÑ Ñ ÑемейÑÑвами опеÑаÑоÑов (Ñм. ÐодÑаздел 37.16.2). ÐÑли Ñказан
Ñаблон-меÑодов-доÑÑÑпа, показÑваÑÑÑÑ ÑолÑко Ñе ÑÐ»ÐµÐ½Ñ ÑемейÑÑв опеÑаÑоÑов, коÑоÑÑе ÑвÑÐ·Ð°Ð½Ñ Ñ Ð¼ÐµÑодами доÑÑÑпа Ñ ÑооÑвеÑÑÑвÑÑÑими ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸. ÐÑли ÑказанÑаблон-ÑемейÑÑва-опеÑаÑоÑов, показÑваÑÑÑÑ ÑолÑко ÑÐ»ÐµÐ½Ñ ÑÐµÑ ÑемейÑÑв, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ опеÑаÑоÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ ÐµÐ³Ð¾ ÑемейÑÑво ÑоÑÑиÑовки (еÑли ÑÑо опеÑаÑÐ¾Ñ ÑпоÑÑдоÑиваниÑ).-
\dAp[+] [#Ñаблон-меÑодов-доÑÑÑпа[Ñаблон-ÑемейÑÑв-опеÑаÑоÑов]] ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок опоÑнÑÑ ÑÑнкÑий, ÑвÑзаннÑÑ Ñ ÑемейÑÑвами опеÑаÑоÑов (Ñм. ÐодÑаздел 37.16.3). ÐÑли Ñказан
Ñаблон-меÑодов-доÑÑÑпа, показÑваÑÑÑÑ ÑолÑко Ñе ÑÑнкÑии ÑемейÑÑв опеÑаÑоÑов, коÑоÑÑе ÑвÑÐ·Ð°Ð½Ñ Ñ Ð¼ÐµÑодами доÑÑÑпа Ñ ÑооÑвеÑÑÑвÑÑÑими ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸. ÐÑли ÑказанÑаблон-ÑемейÑÑва-опеÑаÑоÑов, показÑваÑÑÑÑ ÑолÑко ÑÑнкÑии ÑемейÑÑв, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде ÑÑнкÑии вÑводÑÑÑÑ Ð² ÑазвÑÑнÑÑом виде, Ñо ÑпиÑками ÑакÑиÑеÑÐºÐ¸Ñ Ð¿Ð°ÑамеÑÑов.\db[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе ÑаблиÑнÑе пÑоÑÑÑанÑÑва, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно вÑводÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, обÑÑм на диÑке, пÑава доÑÑÑпа и опиÑание.\dc[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑеобÑазований Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð´Ð¸Ñовками набоÑов Ñимволов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð¸Ñовок, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\dconfig[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок паÑамеÑÑов конÑигÑÑаÑии ÑеÑвеÑа и Ð¸Ñ Ð·Ð½Ð°Ñений. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе паÑамеÑÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐезÑаблонавÑводÑÑÑÑ ÑолÑко Ñе паÑамеÑÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð·Ð°Ð´Ð°Ð½Ñ Ð·Ð½Ð°ÑениÑ, оÑлиÑнÑе Ð¾Ñ Ð·Ð½Ð°Ñений по ÑмолÑаниÑ. (ЧÑÐ¾Ð±Ñ ÑвидеÑÑ Ð²Ñе паÑамеÑÑÑ, введиÑе\dconfig *.) ÐÑи добавлении+к команде каждÑй паÑамеÑÑ Ð¾ÑобÑажаеÑÑÑ Ñ Ñипом даннÑÑ , конÑекÑÑом, в коÑоÑом паÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑановлен, и пÑавами доÑÑÑпа (еÑли они оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¿Ñав доÑÑÑпа по ÑмолÑаниÑ).\dC[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑиведений Ñипов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñипов, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\dd[S] [#Ñаблон]ÐоказÑÐ²Ð°ÐµÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов ÑледÑÑÑÐ¸Ñ Ð²Ð¸Ð´Ð¾Ð²:
огÑаниÑение,клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов,ÑемейÑÑво опеÑаÑоÑов,пÑавилоиÑÑиггеÑ. ÐпиÑÐ°Ð½Ð¸Ñ Ð¾ÑÑалÑнÑÑ Ð¾Ð±ÑекÑов можно поÑмоÑÑеÑÑ ÑооÑвеÑÑÑвÑÑÑими меÑакомандами Ð´Ð»Ñ ÑÑÐ¸Ñ Ñипов обÑекÑов.\ddпоказÑÐ²Ð°ÐµÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±ÑекÑов, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ, или Ð´Ð»Ñ Ð´Ð¾ÑÑÑпнÑÑ Ð¾Ð±ÑекÑов ÑказаннÑÑ Ñипов, еÑли аÑгÑменÑÑ Ð½Ðµ заданÑ. Ðо в лÑбом ÑлÑÑае вÑводÑÑÑÑ ÑолÑко Ñе обÑекÑÑ, коÑоÑÑе имеÑÑ Ð¾Ð¿Ð¸Ñание. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.ÐпиÑÐ°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов ÑоздаÑÑÑÑ SQL-командой
COMMENT.\dD[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок доменов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе доменÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ñава доÑÑÑпа и опиÑание.\ddp [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑав доÑÑÑпа по ÑмолÑаниÑ. ÐÑводиÑÑÑ ÑÑÑока Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñоли (и ÑÑ ÐµÐ¼Ñ, еÑли пÑименимо), Ð´Ð»Ñ ÐºÐ¾ÑоÑой пÑава доÑÑÑпа по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑлиÑаÑÑÑÑ Ð¾Ñ Ð²ÑÑÑоеннÑÑ . ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑÑÑоки ÑолÑко Ð´Ð»Ñ ÑÐµÑ Ñолей и ÑÑ ÐµÐ¼, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.ÐÑава доÑÑÑпа по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑанавливаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
ALTER DEFAULT PRIVILEGES. СмÑÑл оÑобÑажаемÑÑ Ð¿Ñав обÑÑÑнÑеÑÑÑ Ð² Разделе 5.7.\dE[S+] [Ñаблон]\di[S+] [Ñаблон]\dm[S+] [Ñаблон]\ds[S+] [Ñаблон]\dt[S+] [Ñаблон]\dv[S+] [#Ñаблон]Ð ÑÑой гÑÑппе команд бÑквÑ
E,i,m,s,tиvобознаÑаÑÑ ÑооÑвеÑÑÑвенно: внеÑнÑÑ ÑаблиÑÑ, индекÑ, маÑеÑиализованное пÑедÑÑавление, поÑледоваÑелÑноÑÑÑ, ÑаблиÑÑ Ð¸ пÑедÑÑавление. Ðожно ÑказÑваÑÑ Ð²Ñе или ÑаÑÑÑ ÑÑÐ¸Ñ Ð±Ñкв, в пÑоизволÑном поÑÑдке, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑпиÑок обÑекÑов ÑÑÐ¸Ñ Ñипов. ÐапÑимеÑ,\ditвÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ индекÑов. ÐÑи добавлении+к имени ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑдÑÑ Ð²ÑводиÑÑÑÑ ÑоÑÑоÑние Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ (поÑÑоÑннÑй, вÑеменнÑй, нежÑÑналиÑÑемÑй), ÑизиÑеÑкий ÑÐ°Ð·Ð¼ÐµÑ Ð½Ð° диÑке и опиÑание, пÑи налиÑии. ÐÑли ÑказанÑаблон, вÑводÑÑÑÑ ÑолÑко обÑекÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.\des[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑеÑвеÑов (мнемоника: «external servers»). ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑеÑвеÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\des+, Ñо вÑводиÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ опиÑание каждого ÑеÑвеÑа, вклÑÑÐ°Ñ Ð¿Ñава доÑÑÑпа, Ñип, веÑÑиÑ, паÑамеÑÑÑ Ð¸ опиÑание.\det[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ (мнемоника: «external tables»). ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе запиÑи, Ð¸Ð¼Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ ÑÑ ÐµÐ¼Ñ ÐºÐ¾ÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\det+, Ñо дополниÑелÑно вÑводÑÑÑÑ Ð¾Ð±Ñие паÑамеÑÑÑ Ð¸ опиÑание ÑÑоÑонней ÑаблиÑÑ.\deu[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑопоÑÑавлений полÑзоваÑелей (мнемоника: «external users»). ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко ÑопоÑÑавлениÑ, в коÑоÑÑÑ Ð¸Ð¼ÐµÐ½Ð° полÑзоваÑелей ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\deu+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждом ÑопоÑÑавлении полÑзоваÑелей.Ðнимание
\deu+Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑобÑажаÑÑ Ð¸Ð¼Ñ Ð¸ паÑÐ¾Ð»Ñ ÑдалÑнного полÑзоваÑелÑ, поÑÑÐ¾Ð¼Ñ ÑледÑÐµÑ Ð¿Ð¾Ð·Ð°Ð±Ð¾ÑиÑÑÑÑ Ð¾ Ñом, ÑÑÐ¾Ð±Ñ Ð½Ðµ ÑаÑкÑÑваÑÑ Ð¸Ñ .\dew[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок обÑÑÑок ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ (мнемоника: «external wrappers»). ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе обÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ , имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dew+, Ñо дополниÑелÑно вÑводÑÑÑÑ Ð¿Ñава доÑÑÑпа, паÑамеÑÑÑ Ð¸ опиÑание обÑÑÑки.\df[anptwS+] [#Ñаблон[аÑг_Ñаблон... ] ]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑнкÑий Ñ Ñипами даннÑÑ Ð¸Ñ ÑезÑлÑÑаÑов, аÑгÑменÑов и клаÑÑиÑикаÑией: «agg» (агÑегаÑнаÑ), «normal», (обÑÑнаÑ), «procedure» (пÑоÑедÑÑнаÑ), «trigger» (ÑÑиггеÑнаÑ) или «window» (оконнаÑ). ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑÑнкÑии ÑолÑко опÑеделÑнного вида (видов), добавÑÑе в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑооÑвеÑÑÑвÑÑÑие бÑквÑ
a,n,p,tилиw. ÐÑли заданÑаблон, показÑваÑÑÑÑ ÑолÑко Ñе ÑÑнкÑии, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑбÑе дополниÑелÑнÑе аÑгÑменÑÑ Ð·Ð°Ð´Ð°ÑÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð¸Ð¼Ñн Ñипов, коÑоÑÑе ÑопоÑÑавлÑÑÑÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ Ñипов пеÑвого, вÑоÑого и поÑледÑÑÑÐ¸Ñ Ð°ÑгÑменÑов ÑÑнкÑии. (У ÑопоÑÑавленнÑÑ ÑÑнкÑий Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе аÑгÑменÑов, Ñем Ð²Ñ Ð·Ð°Ð´Ð°Ð»Ð¸. ЧÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑо, запиÑиÑе минÑÑ (-) в каÑеÑÑве поÑледнего аÑгÑменÑааÑг_Ñаблон.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми; Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\df+, Ñо дополниÑелÑно вÑводÑÑÑÑ Ñ Ð°ÑакÑеÑиÑÑики каждой ÑÑнкÑии: изменÑивоÑÑÑ, допÑÑÑимоÑÑÑ ÑаÑпаÑаллеливаниÑ, владелеÑ, клаÑÑиÑикаÑÐ¸Ñ Ð¿Ð¾ безопаÑноÑÑи, пÑава доÑÑÑпа, ÑзÑк, внÑÑÑеннее Ð¸Ð¼Ñ (ÑолÑко Ð´Ð»Ñ ÑÑнкÑий на C и внÑÑÑÐµÐ½Ð½Ð¸Ñ ÑÑнкÑий) и опиÑание. ÐÑÑ Ð¾Ð´Ð½Ñй код оÑделÑной ÑÑнкÑии можно поÑмоÑÑеÑÑ, воÑполÑзовавÑиÑÑ\sf.\dF[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок конÑигÑÑаÑий ÑекÑÑового поиÑка. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе конÑигÑÑаÑии, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dF+, Ñо вÑводиÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ опиÑание Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ конÑигÑÑаÑии, вклÑÑÐ°Ñ Ð±Ð°Ð·Ð¾Ð²Ñй ÑинÑакÑиÑеÑкий анализаÑÐ¾Ñ Ð¸ иÑполÑзÑемÑе ÑловаÑи Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñипа ÑÑагменÑов.\dFd[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑловаÑей ÑекÑÑового поиÑка. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко ÑловаÑи, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dFd+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждом ÑловаÑе, вклÑÑÐ°Ñ Ð±Ð°Ð·Ð¾Ð²Ñй Ñаблон ÑекÑÑового поиÑка и паÑамеÑÑÑ Ð¸Ð½Ð¸ÑиализаÑии.\dFp[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок анализаÑоÑов ÑекÑÑового поиÑка. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе анализаÑоÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dFp+, Ñо вÑводиÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ðµ опиÑание Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ анализаÑоÑа, вклÑÑÐ°Ñ Ð±Ð°Ð·Ð¾Ð²Ñе ÑÑнкÑии и ÑпиÑок Ñипов ÑÑагменÑов.\dFt[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñаблонов ÑекÑÑового поиÑка. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко ÑаблонÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dFt+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждом Ñаблоне, вклÑÑÐ°Ñ Ð¸Ð¼ÐµÐ½Ð° оÑновнÑÑ ÑÑнкÑий.\dg[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñолей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . (Так как понÑÑÐ¸Ñ Â«Ð¿Ð¾Ð»ÑзоваÑели» и «гÑÑппÑ» бÑли обÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð² «Ñоли», ÑÑа команда ÑепеÑÑ ÑквиваленÑна
\du.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑводÑÑÑÑ ÑолÑко Ñоли, ÑозданнÑе полÑзоваÑелÑми: ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¸ ÑиÑÑемнÑе Ñоли, добавÑÑе модиÑикаÑоÑS. ÐÑли ÑказанÑаблон, вÑводÑÑÑÑ ÑолÑко Ñе Ñоли, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dg+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждой Ñоли; в наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑо комменÑаÑий Ñоли.\dl[+]#ÐÑевдоним длÑ
\lo_list, показÑÐ²Ð°ÐµÑ ÑпиÑок болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ болÑÑого обÑекÑа оÑобÑажаÑÑÑÑ Ð¿Ñава доÑÑÑпа к немÑ, еÑли они назнаÑенÑ.\dL[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑоÑедÑÑнÑÑ ÑзÑков. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑзÑки, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко ÑзÑки, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑзÑка дополниÑелÑно бÑдÑÑ Ð²ÑводиÑÑÑÑ: обÑабоÑÑик вÑзова, ÑÑнкÑÐ¸Ñ Ð¿ÑовеÑки, пÑава доÑÑÑпа и ÑвлÑеÑÑÑ Ð»Ð¸ ÑзÑк ÑиÑÑемнÑм обÑекÑом.\dn[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑ ÐµÐ¼ (пÑоÑÑÑанÑÑв имÑн). ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑÑ ÐµÐ¼Ñ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ñава доÑÑÑпа и опиÑание, пÑи налиÑии.\do[S+] [#Ñаблон[аÑг_Ñаблон[аÑг_Ñаблон] ] ]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок опеÑаÑоÑов, Ð¸Ñ Ð¾Ð¿ÐµÑандов и ÑÐ¸Ð¿Ñ ÑезÑлÑÑаÑа. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе опеÑаÑоÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли Ñказан одинаÑг_Ñаблон, бÑдÑÑ Ð²ÑводиÑÑÑÑ ÑолÑко пÑеÑикÑнÑе опеÑаÑоÑÑ, Ñип пÑавого аÑгÑменÑа коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÑÑÐ¾Ð¼Ñ ÑаблонÑ. ÐÑли же Ñказано два паÑамеÑÑааÑг_Ñаблон, бÑдÑÑ Ð²ÑводиÑÑÑÑ ÑолÑко бинаÑнÑе опеÑаÑоÑÑ, ÑÐ¸Ð¿Ñ Ð°ÑгÑменÑов коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ Ñаблонам. (Также можно запиÑаÑÑ-в каÑеÑÑве неиÑполÑзÑемого аÑгÑменÑа ÑнаÑного опеÑаÑоÑа.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ опеÑаÑоÑа бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑиÑ; ÑейÑÐ°Ñ ÑÑо Ð¸Ð¼Ñ ÑÑнкÑии, на коÑоÑой оÑнован опеÑаÑоÑ.\dO[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑавил ÑоÑÑиÑовки. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе пÑавила, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание, пÑи налиÑии. ÐбÑаÑиÑе внимание, ÑÑо оÑобÑажаÑÑÑÑ ÑолÑко пÑавила ÑоÑÑиÑовки, пÑименимÑе к кодиÑовке ÑекÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , поÑÑÐ¾Ð¼Ñ ÑезÑлÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑлиÑаÑÑÑÑ Ð´Ð»Ñ ÑазлиÑнÑÑ Ð±Ð°Ð· даннÑÑ ÑÑой же ÑÑÑановки PostgreSQL.\dp[S] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑ, пÑедÑÑавлений и поÑледоваÑелÑноÑÑей Ñ Ð¸Ñ Ð¿Ñавами доÑÑÑпа. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко ÑаблиÑÑ, пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑи, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.ÐÐ»Ñ ÑÑÑановки пÑав доÑÑÑпа иÑполÑзÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
GRANTиREVOKE. СмÑÑл оÑобÑажаемÑÑ Ð¿Ñав обÑÑÑнÑеÑÑÑ Ð² Разделе 5.7.\dP[itn+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑекÑиониÑованнÑÑ Ð¾ÑноÑений. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе оÑноÑениÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении к команде модиÑикаÑоÑаt(tables, ÑаблиÑÑ) иi(indexes, индекÑÑ) ÑпиÑок бÑÐ´ÐµÑ ÑилÑÑÑоваÑÑÑÑ Ð¿Ð¾ ÑÐ¸Ð¿Ñ Ð¾ÑноÑениÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑводÑÑÑÑ Ð¸ ÑекÑиониÑованнÑе ÑаблиÑÑ, и индекÑÑ.ÐÑи добавлении модиÑикаÑоÑа
n(«nested», вложеннÑе) или Ñказании Ñаблона вÑводÑÑÑÑ Ñакже вложеннÑе ÑекÑиониÑованнÑе оÑноÑÐµÐ½Ð¸Ñ Ð¸ дополниÑелÑнÑй ÑÑолбеÑ, показÑваÑÑий ÑодиÑÐµÐ»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑекÑиониÑованного оÑноÑениÑ.ÐÑли к команде добавлÑеÑÑÑ
+, Ñакже вÑводиÑÑÑ ÑÑммаÑнÑй ÑÐ°Ð·Ð¼ÐµÑ Ð²ÑÐµÑ ÑекÑий каждого оÑноÑÐµÐ½Ð¸Ñ Ð¸ его опиÑание. ÐÑли+дополнÑÐµÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑn, бÑдÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð´Ð²Ð° ÑазмеÑа: ÑÐ°Ð·Ð¼ÐµÑ ÑекÑий, непоÑÑедÑÑвенно ÑвÑзаннÑÑ Ñ Ð¾ÑноÑением, и обÑий ÑÐ°Ð·Ð¼ÐµÑ Ð²ÑÐµÑ ÑекÑий, вклÑÑÐ°Ñ Ñе, ÑÑо ÑвÑÐ·Ð°Ð½Ñ Ñ Ð¾ÑноÑением опоÑÑедованно.\drds [#Ñаблон-Ñолей[Ñаблон-баз] ]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑÑановленнÑÑ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии. ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑпеÑиÑиÑнÑми Ð´Ð»Ñ Ñоли, ÑпеÑиÑиÑнÑми Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , или Ð¾Ð±ÐµÐ¸Ñ . ÐаÑамеÑÑÑ
Ñаблон-ÑолейиÑаблон-базиÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¾ÑбоÑа опÑеделÑннÑÑ Ñолей и баз даннÑÑ , ÑооÑвеÑÑÑвенно. ÐÑли они опÑÑенÑ, или Ñказано*, вÑводÑÑÑÑ Ð²Ñе паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, в Ñом ÑиÑле не оÑноÑÑÑиеÑÑ Ðº ÑолÑм или базам даннÑÑ .ÐомандÑ
ALTER ROLEиALTER DATABASEиÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии, ÑпеÑиÑиÑнÑÑ Ð´Ð»Ñ Ñоли или Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .\drg[S] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑленÑÑве в ÑолÑÑ Ñ Ñказанием назнаÑеннÑÑ Ð°ÑÑибÑÑов (
ADMIN,INHERITи/илиSET) и пÑаводаÑелÑ. Ðа инÑоÑмаÑией о ÑленÑÑве в ÑолÑÑ Ð¾Ð±ÑаÑиÑеÑÑ Ðº опиÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑGRANT.Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑводиÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ ÑолÑко о ÑленÑÑве в ÑолÑÑ , ÑозданнÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑми: ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¸ ÑиÑÑемнÑе Ñоли, добавÑÑе модиÑикаÑоÑ
S. ÐÑли ÑказанÑаблон, вÑводÑÑÑÑ ÑолÑко Ñе Ñоли, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.\dRp[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑеплиÑиÑÑемÑÑ Ð¿ÑбликаÑий. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе подпиÑки, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ пÑбликаÑии показÑваÑÑÑÑ Ñакже ÑвÑзаннÑе Ñ Ð½ÐµÐ¹ ÑаблиÑÑ Ð¸ ÑÑ ÐµÐ¼Ñ.\dRs[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок подпиÑок на ÑепликаÑиÑ. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе подпиÑки, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде вÑводÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑвойÑÑва подпиÑок.\duP [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿ÑоÑили. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко Ñе пÑоÑили, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÐ°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° доÑÑÑпна ÑолÑко ÑÑпеÑполÑзоваÑелÑм.\dT[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñипов даннÑÑ . ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑипÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñипа даннÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ: внÑÑÑеннее Ð¸Ð¼Ñ Ñипа, ÑазмеÑ, допÑÑÑимÑе знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñипаenumи пÑава доÑÑÑпа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.\du[S+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñолей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . (Так как понÑÑÐ¸Ñ Â«Ð¿Ð¾Ð»ÑзоваÑели» и «гÑÑппÑ» бÑли обÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð² «Ñоли», ÑÑа команда ÑепеÑÑ ÑавнознаÑна
\dg.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑводÑÑÑÑ ÑолÑко Ñоли, ÑозданнÑе полÑзоваÑелÑми: ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¸ ÑиÑÑемнÑе Ñоли, добавÑÑе модиÑикаÑоÑS. ÐÑли ÑказанÑаблон, вÑводÑÑÑÑ ÑолÑко Ñе Ñоли, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\du+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждой Ñоли; в наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑо комменÑаÑий Ñоли.\dx[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑÑановленнÑÑ ÑаÑÑиÑений. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко ÑаÑÑиÑениÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dx+, Ñо Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð²ÑводÑÑÑÑ Ð²Ñе пÑинадлежаÑие ÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ.\dX [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¾Ð±ÑекÑÑ ÑаÑÑиÑенной ÑÑаÑиÑÑики. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко Ñе обÑекÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.СоÑÑоÑние каждого вида ÑаÑÑиÑенной ÑÑаÑиÑÑики показÑваеÑÑÑ Ð² ÑÑолбÑе Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, оÑÑажаÑÑим ÐµÑ Ð²Ð¸Ð´ (напÑимеÑ, Ndistinct). СоÑÑоÑние
defined(опÑеделÑн) ознаÑаеÑ, ÑÑо ÑÑÐ¾Ñ Ð²Ð¸Ð´ бÑл запÑоÑен пÑи Ñоздании ÑÑаÑиÑÑики; в пÑоÑивном ÑлÑÑае оÑобÑажаеÑÑÑ NULL. ЧÑÐ¾Ð±Ñ ÑзнаÑÑ, пÑоизводилÑÑ Ð»Ð¸ анализ (ANALYZE) ÑÑаÑиÑÑики и доÑÑÑпна ли она Ð´Ð»Ñ Ð¿Ð»Ð°Ð½Ð¸ÑовÑика, обÑаÑиÑеÑÑ Ðº пÑедÑÑавлениÑpg_stats_ext.\dy[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑобÑÑийнÑÑ ÑÑиггеÑов. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑобÑÑийнÑе ÑÑиггеÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\eили\edit[#имÑ_Ñайла] [номеÑ_ÑÑÑоки]ÐÑли Ñказано
имÑ_Ñайла, Ñайл оÑкÑÑваеÑÑÑ Ð´Ð»Ñ ÑедакÑиÑованиÑ; поÑле вÑÑ Ð¾Ð´Ð° из ÑедакÑоÑа ÑодеÑжимое Ñайла копиÑÑеÑÑÑ Ð² бÑÑÐµÑ ÑекÑÑего запÑоÑа. ÐÑлиимÑ_Ñайлане задано, бÑÑÐµÑ ÑекÑÑего запÑоÑа копиÑÑеÑÑÑ Ð²Ð¾ вÑеменнÑй Ñайл, коÑоÑÑй заÑем ÑедакÑиÑÑеÑÑÑ Ñем же обÑазом. Ðибо, еÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, во вÑеменнÑй Ñайл копиÑÑеÑÑÑ Ð¿Ð¾Ñледний вÑполненнÑй запÑоÑ, и он заÑем Ñак же ÑедакÑиÑÑеÑÑÑ.ÐÑли поÑле ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñайла или пÑедÑдÑÑего вопÑоÑа вÑйÑи из ÑедакÑоÑа без ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ñайла, бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑов бÑÐ´ÐµÑ Ð¾ÑиÑен. Рином ÑлÑÑае новое ÑодеÑжимое бÑÑеÑа запÑоÑа ÑазбиÑаеÑÑÑ ÑоглаÑно обÑÑнÑм пÑавилам psql, пÑи ÑÑом веÑÑ Ð±ÑÑÐµÑ Ð¾Ð±ÑабаÑÑваеÑÑÑ ÐºÐ°Ðº одна ÑÑÑока. ÐÑе законÑеннÑе запÑоÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ вÑполнÑÑÑÑÑ; Ñо еÑÑÑ, еÑли бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа ÑодеÑÐ¶Ð¸Ñ ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или заканÑиваеÑÑÑ ÐµÐ¹, вÑÑ ÐµÐ³Ð¾ ÑодеÑжимое до ÑÑого знака вÑполнÑеÑÑÑ Ð¸ ÑдалÑеÑÑÑ Ð¸Ð· бÑÑеÑа. ÐÑÑ Ð¾ÑÑалÑное ÑодеÑжимое бÑÑеÑа оÑÑаÑÑÑÑ Ð² нÑм и повÑоÑно вÑводиÑÑÑ Ð½Ð° ÑкÑан. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или
\g, ÑÑÐ¾Ð±Ñ Ð¿ÐµÑедаÑÑ ÐµÐ³Ð¾, либо\r, ÑÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ, оÑиÑÑив бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа.ÐÑоÑÑение бÑÑеÑа как одной ÑÑÑоки в оÑновном оÑÑажаеÑÑÑ Ð½Ð° меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ : вÑÑ, ÑÑо Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² бÑÑеÑе поÑле меÑакомандÑ, бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинÑÑо как аÑгÑменÑÑ Ð¼ÐµÑакомандÑ, даже еÑли ÑÑÐ¾Ñ ÑекÑÑ Ð¿ÑодолжаеÑÑÑ Ð½Ð° неÑколÑÐºÐ¸Ñ ÑÑÑÐ¾ÐºÐ°Ñ . (ÐоÑÑÐ¾Ð¼Ñ Ñаким ÑпоÑобом нелÑÐ·Ñ Ð²ÑполнÑÑÑ ÑкÑипÑÑ Ñ Ð¼ÐµÑакомандами. ÐÐ»Ñ ÑÐ°ÐºÐ¸Ñ ÑкÑипÑов иÑполÑзÑйÑе
\i.)ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð¸ÑиониÑоваÑÑ ÐºÑÑÑÐ¾Ñ Ð½Ð° ÑказаннÑÑ ÑÑÑÐ¾ÐºÑ Ñайла или бÑÑеÑа запÑоÑа. ÐбÑаÑиÑе внимание, ÑÑо еÑли Ñказан один аÑгÑÐ¼ÐµÐ½Ñ Ð¸ он ÑиÑловой, psql пÑедполагаеÑ, ÑÑо ÑÑо Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, а не Ð¸Ð¼Ñ Ñайла.
ÐодÑказка
Ðак наÑÑÑоиÑÑ ÑедакÑÐ¾Ñ Ð¸ измениÑÑ ÐµÐ³Ð¾ поведение, ÑаÑÑказÑваеÑÑÑ Ð² Ñазделе ÐеÑеменнÑе окÑÑжениÑ.
\echo#ÑекÑÑ[ ... ]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð²ÑÑиÑленнÑе аÑгÑменÑÑ Ð² ÑÑÑÑойÑÑво ÑÑандаÑÑного вÑвода, ÑазделÑÑ Ð¸Ñ Ð¿Ñобелами, Ñ Ð¿ÐµÑеводом ÑÑÑоки в конÑе. Таким обÑазом можно добавлÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð² вÑвод ÑкÑипÑов. ÐапÑимеÑ:
=>
\echo `date`Tue Oct 26 21:40:57 CEST 1999ÐÑли в пеÑвом аÑгÑменÑе пеÑедаÑÑÑÑ
-nбез кавÑÑек, пеÑевод ÑÑÑоки в конÑе не добавлÑеÑÑÑ (и ÑÑÐ¾Ñ Ð¿ÐµÑвÑй аÑгÑÐ¼ÐµÐ½Ñ Ð½Ðµ вÑводиÑÑÑ).ÐодÑказка
ÐÑли Ð²Ñ Ð¿ÐµÑенапÑавлÑеÑе вÑвод запÑоÑов, иÑполÑзÑÑ
\o, возможно, вмеÑÑо ÑÑой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑледÑÐµÑ Ð¿ÑимениÑÑ\qecho. См. Ñакже опиÑание\warn.\ef [#опиÑание_ÑÑнкÑии[номеÑ_ÑÑÑоки]]ÐÑа команда Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð¾Ð¿Ñеделение заданной ÑÑнкÑии или пÑоÑедÑÑÑ Ð² ÑоÑме командÑ
CREATE OR REPLACE FUNCTIONилиCREATE OR REPLACE PROCEDUREи оÑкÑÑÐ²Ð°ÐµÑ ÐµÐ³Ð¾ Ð´Ð»Ñ ÑедакÑиÑованиÑ. РедакÑиÑование оÑÑÑеÑÑвлÑеÑÑÑ Ñаким же обÑазом, как и пÑи вÑполнении\edit. ÐÑли вÑйÑи из ÑедакÑоÑа без ÑÐ¾Ñ ÑанениÑ, Ñело ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑбÑаÑÑваеÑÑÑ. ÐнаÑе полÑÑÐµÐ½Ð½Ð°Ñ Ð¸Ð· ÑÐ¾Ñ ÑанÑнного Ñайла команда немедленно вÑполнÑеÑÑÑ, еÑли Ð²Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ к ней ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой. РпÑоÑивном ÑлÑÑае она повÑоÑно вÑводиÑÑÑ Ð½Ð° ÑкÑан; Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или\g, ÑÑÐ¾Ð±Ñ Ð¿ÐµÑедаÑÑ ÐµÑ ÑеÑвеÑÑ, либо\r, ÑÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ.ÐÐ»Ñ ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑолÑко Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ð¸ аÑгÑменÑÑ, напÑимеÑ
foo(integer, text). Ð¢Ð¸Ð¿Ñ Ð°ÑгÑменÑов Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ, еÑли ÑÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÐµÐµ Ñем одна ÑÑнкÑÐ¸Ñ Ñ Ñем же именем.ÐÑли ÑÑнкÑÐ¸Ñ Ð½Ðµ Ñказана, Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑкÑÑваеÑÑÑ Ð¿ÑÑÑÐ°Ñ Ð·Ð°Ð³Ð¾Ñовка
CREATE FUNCTION.ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð¸ÑиониÑоваÑÑ ÐºÑÑÑÐ¾Ñ Ð½Ð° ÑказаннÑÑ ÑÑÑÐ¾ÐºÑ Ñела ÑÑнкÑии. (ÐбÑаÑиÑе внимание, ÑÑо Ñело ÑÑнкÑии обÑÑно не наÑинаеÑÑÑ Ð½Ð° пеÑвой ÑÑÑоке Ñайла).
РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\ef, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.ÐодÑказка
Ðак наÑÑÑоиÑÑ ÑедакÑÐ¾Ñ Ð¸ измениÑÑ ÐµÐ³Ð¾ поведение, ÑаÑÑказÑваеÑÑÑ Ð² Ñазделе ÐеÑеменнÑе окÑÑжениÑ.
\encoding [#кодиÑовка]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð½Ð°Ð±Ð¾Ñа Ñимволов на клиенÑе. Ðез аÑгÑменÑа команда показÑÐ²Ð°ÐµÑ ÑекÑÑÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ.
\errverbose#ÐовÑоÑÑÐµÑ Ð¿Ð¾Ñледнее ÑеÑвеÑное ÑообÑение об оÑибке Ñ Ð¼Ð°ÐºÑималÑнÑм ÑÑовнем деÑализаÑии, как еÑли Ð±Ñ Ð¿ÐµÑеменнаÑ
VERBOSITYимела знаÑениеverbose, аSHOW_CONTEXTâalways.\ev [#имÑ_пÑедÑÑавлениÑ[номеÑ_ÑÑÑоки]]ÐÑа команда Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð¾Ð¿Ñеделение заданного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑоÑме командÑ
CREATE OR REPLACE VIEWи оÑкÑÑÐ²Ð°ÐµÑ ÐµÐ³Ð¾ Ð´Ð»Ñ ÑедакÑиÑованиÑ. РедакÑиÑование оÑÑÑеÑÑвлÑеÑÑÑ Ñаким же обÑазом, как и пÑи вÑполнении\edit. ÐÑли вÑйÑи из ÑедакÑоÑа без ÑÐ¾Ñ ÑанениÑ, Ñело ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑбÑаÑÑваеÑÑÑ. ÐнаÑе полÑÑÐµÐ½Ð½Ð°Ñ Ð¸Ð· ÑÐ¾Ñ ÑанÑнного Ñайла команда немедленно вÑполнÑеÑÑÑ, еÑли Ð²Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ð»Ð¸ к ней ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой. РпÑоÑивном ÑлÑÑае она повÑоÑно вÑводиÑÑÑ Ð½Ð° ÑкÑан; Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ввеÑÑи ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или\g, ÑÑÐ¾Ð±Ñ Ð¿ÐµÑедаÑÑ ÐµÑ ÑеÑвеÑÑ, либо\r, ÑÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ.ÐÑли пÑедÑÑавление не Ñказано, Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑкÑÑваеÑÑÑ Ð¿ÑÑÑÐ°Ñ Ð·Ð°Ð³Ð¾Ñовка
CREATE VIEW.ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐºÑÑÑÐ¾Ñ Ð½Ð° заданнÑÑ ÑÑÑÐ¾ÐºÑ Ð² опÑеделении пÑедÑÑавлениÑ.
РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\ev, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.\f [#ÑÑÑока]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода запÑоÑов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð²ÐµÑÑикалÑÐ½Ð°Ñ ÑеÑÑа (
|). РавнознаÑно команде\pset fieldsep.\g [ (паÑамеÑÑ=знаÑение[...]) ] [имÑ_Ñайла]\g [ (#паÑамеÑÑ=знаÑение[...]) ] [ |команда]ÐеÑедаÑÑ ÑодеÑжимое бÑÑеÑа ÑекÑÑего запÑоÑа ÑеÑвеÑÑ Ð´Ð»Ñ Ð²ÑполнениÑ.
ÐÑли поÑле
\gидÑÑ Ñкобки, внÑÑÑи Ð½Ð¸Ñ ÑодеÑжиÑÑÑ ÑазделÑннÑй пÑобелами ÑпиÑок опÑеделений паÑамеÑÑов ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² видепаÑамеÑÑ=знаÑение. ÐÑи опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑпÑинимаÑÑÑÑ Ñак же, как и в команде\psetпаÑамеÑÑзнаÑение, но ÑÑÑанавливаÑÑÑÑ ÑолÑко на вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа. Ð ÑÑом ÑпиÑке пÑÐ¾Ð±ÐµÐ»Ñ Ð½Ðµ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ ÑÑдом Ñо знаками=, но Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазделÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑазнÑÑ Ð¿Ð°ÑамеÑÑов. ÐÑли=знаÑениеопÑÑкаеÑÑÑ, даннÑйпаÑамеÑÑменÑеÑÑÑ Ñак же, как и пÑи вÑполнении\psetпаÑамеÑÑбез Ñвно заданногознаÑениÑ.ÐÑли в аÑгÑменÑе пеÑедаÑÑÑÑ
имÑ_Ñайлаили|команда, вÑвод запÑоÑа запиÑÑваеÑÑÑ Ð² ÑказаннÑй Ñайл или пеÑедаÑÑÑÑ ÑеÑез поÑок заданной команде оболоÑки, а не оÑобÑажаеÑÑÑ ÐºÐ°Ðº обÑÑно. ÐÑвод напÑавлÑеÑÑÑ Ð² Ñайл или командÑ, ÑолÑко еÑли запÑÐ¾Ñ ÑÑпеÑно веÑнÑл 0 или более ÑÑÑок, но не когда запÑÐ¾Ñ Ð·Ð°Ð²ÐµÑÑилÑÑ Ð½ÐµÑдаÑно или вÑполнÑлаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, не возвÑаÑаÑÑÐ°Ñ Ð´Ð°Ð½Ð½Ñе.ÐÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, вмеÑÑо ÑÑого повÑоÑно вÑполнÑеÑÑÑ Ð¿ÑедÑдÑÑий запÑоÑ. Ðа иÑклÑÑением ÑÑой оÑобенноÑÑи меÑакоманда
\gбез аÑгÑменÑов по ÑÑÑи ÑавнознаÑна ÑоÑке Ñ Ð·Ð°Ð¿ÑÑой. ÐеÑакоманда\gÑ Ð°ÑгÑменÑами ÑвлÑеÑÑÑ Â«Ð¾Ð´Ð½Ð¾Ñазовой» алÑÑеÑнаÑивой команде\o, и пÑи ÑÑом в ней на вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñвода, коÑоÑÑе обÑÑно ÑÑÑанавливаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹\pset.Ðогда поÑледний аÑгÑÐ¼ÐµÐ½Ñ Ð½Ð°ÑинаеÑÑÑ Ñ
|, веÑÑ Ð¾ÑÑаÑок ÑÑÑоки воÑпÑинимаеÑÑÑ ÐºÐ°ÐºÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, подлежаÑÐ°Ñ Ð²ÑполнениÑ, в коÑоÑой не пÑоизводиÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек. ÐÑо пÑодолжение ÑÑÑоки пÑоÑÑо пеÑедаÑÑÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñке в бÑквалÑном виде.\gdesc#ÐоказÑÐ²Ð°ÐµÑ Ð¾Ð¿Ð¸Ñание (Ñо еÑÑÑ Ð¸Ð¼ÐµÐ½Ð° и ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ ÑÑолбÑов) ÑезÑлÑÑаÑа ÑекÑÑего запÑоÑа в бÑÑеÑе. Сам запÑÐ¾Ñ Ð¿Ñи ÑÑом не вÑполнÑеÑÑÑ; но еÑли он ÑодеÑÐ¶Ð¸Ñ ÐºÐ°ÐºÐ¸Ðµ-либо ÑинÑакÑиÑеÑкие оÑибки, они вÑдаÑÑÑÑ Ð¾Ð±ÑÑнÑм обÑазом.
ÐÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, бÑÐ´ÐµÑ Ð¿Ð¾Ð²ÑоÑно опиÑан поÑледний пеÑеданнÑй запÑоÑ.
\getenv#пеÑеменнаÑ_psqlпеÑеменнаÑ_ÑÑедÑÐолÑÑÐ°ÐµÑ Ð·Ð½Ð°Ñение
пеÑеменной_ÑÑедÑи пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ ÐµÐ³Ð¾Ð¿ÐµÑеменной_psql. ÐÑлипеÑеменнаÑ_ÑÑедÑне опÑеделена в ÑÑеде пÑоÑеÑÑа psql,пеÑеменнаÑ_psqlне изменÑеÑÑÑ. ÐÑимеÑ:=>
\getenv home HOME=>\echo :home/home/postgres\gexec#ÐÑпÑавлÑÐµÑ Ð±ÑÑÐµÑ ÑекÑÑего запÑоÑа на ÑеÑвеÑ, а заÑем обÑабаÑÑÐ²Ð°ÐµÑ ÑодеÑжимое каждого ÑÑолбÑа каждой ÑÑÑоки ÑезÑлÑÑаÑа запÑоÑа (еÑли он непÑÑÑой) как SQL-опеÑаÑоÑ, Ñо еÑÑÑ Ð¸ÑполнÑÐµÑ ÐµÐ³Ð¾. ÐапÑимеÑ, ÑледÑÑÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑоздаÑÑ Ð¸Ð½Ð´ÐµÐºÑÑ Ð¿Ð¾ ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ ÑÑолбÑÑ
my_table:=>
SELECT format('create index on my_table(%I)', attname)->FROM pg_attribute->WHERE attrelid = 'my_table'::regclass AND attnum > 0->ORDER BY attnum->\gexecCREATE INDEX CREATE INDEX CREATE INDEX CREATE INDEXÐенеÑиÑÑемÑе запÑоÑÑ Ð²ÑполнÑÑÑÑÑ Ð² Ñом поÑÑдке, в каком возвÑаÑаÑÑÑÑ ÑÑÑоки, Ñлева напÑаво, еÑли возвÑаÑаеÑÑÑ Ð½ÐµÑколÑко ÑÑолбÑов. ÐÐ¾Ð»Ñ NULL игноÑиÑÑÑÑÑÑ. ÐÑи запÑоÑÑ Ð¿ÐµÑедаÑÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑабоÑки на ÑеÑÐ²ÐµÑ Ð±ÑквалÑно, Ñак ÑÑо ÑÑо не могÑÑ Ð±ÑÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql или запÑоÑÑ, иÑполÑзÑÑÑие пеÑеменнÑе psql. Ð ÑлÑÑае ÑÐ±Ð¾Ñ Ð² одном из запÑоÑов, вÑполнение оÑÑавÑÐ¸Ñ ÑÑ Ð·Ð°Ð¿ÑоÑов пÑодолжаеÑÑÑ, еÑли ÑолÑко не ÑÑÑановлена пеÑеменнаÑ
ON_ERROR_STOP. Ðа вÑполнение каждого запÑоÑа оказÑÐ²Ð°ÐµÑ Ð²Ð»Ð¸Ñние паÑамеÑÑECHO. (ÐÑименÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\gexec, ÑекомендÑеÑÑÑ ÑÑÑанавливаÑÑ Ð²ECHOÑежимallилиqueries.) Такие ÑаÑÑиÑеннÑе ÑÑедÑÑва, как пÑоÑоколиÑование запÑоÑов, поÑаговÑй Ñежим, Ð·Ð°Ð¼ÐµÑ Ð²Ñемени и Ñ. п., Ñак же дейÑÑвÑÑÑ Ð¿Ñи вÑполнении каждого генеÑиÑÑемого запÑоÑа.ÐÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, бÑÐ´ÐµÑ Ð¿Ð¾Ð²ÑоÑно вÑполнен поÑледний пеÑеданнÑй запÑоÑ.
\gset [#пÑеÑикÑ]ÐÑпÑавлÑÐµÑ Ð±ÑÑÐµÑ ÑекÑÑего запÑоÑа на ÑеÑÐ²ÐµÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸ ÑÐ¾Ñ ÑанÑÐµÑ ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа в пеÑеменнÑÑ psql (Ñм. Ñаздел ÐеÑеменнÑе ниже). ÐÑполнÑемÑй запÑÐ¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ возвÑаÑаÑÑ Ñовно Ð¾Ð´Ð½Ñ ÑÑÑокÑ. ÐаждÑй ÑÑÐ¾Ð»Ð±ÐµÑ ÑÑÑоки ÑезÑлÑÑаÑа ÑÐ¾Ñ ÑанÑеÑÑÑ Ð² оÑделÑной пеÑеменной, коÑоÑÐ°Ñ Ð½Ð°Ð·ÑваеÑÑÑ Ñак же, как и ÑÑолбеÑ. ÐапÑимеÑ:
=>
SELECT 'hello' AS var1, 10 AS var2->\gset=>\echo :var1 :var2hello 10ÐÑли Ñказан
пÑеÑикÑ, Ñо он добавлÑеÑÑÑ Ð² наÑале к именам пеÑеменнÑÑ :=>
SELECT 'hello' AS var1, 10 AS var2->\gset result_=>\echo :result_var1 :result_var2hello 10ÐÑли знаÑение ÑÑолбÑа NULL, Ñо вмеÑÑо пÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑдалÑеÑÑÑ.
ÐÑли запÑÐ¾Ñ Ð·Ð°Ð²ÐµÑÑаеÑÑÑ Ð¾Ñибкой или не возвÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ñ ÑÑÑокÑ, Ñо никакие пеÑеменнÑе не менÑÑÑÑÑ.
ÐÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, бÑÐ´ÐµÑ Ð¿Ð¾Ð²ÑоÑно вÑполнен поÑледний пеÑеданнÑй запÑоÑ.
\gx [ (паÑамеÑÑ=знаÑение[...]) ] [имÑ_Ñайла]\gx [ (#паÑамеÑÑ=знаÑение[...]) ] [ |команда]ÐеÑакоманда
\gxÑавнознаÑна\gза иÑклÑÑением Ñого, ÑÑо она пÑинÑдиÑелÑно вклÑÑÐ°ÐµÑ ÑаÑÑиÑеннÑй Ñежим вÑвода Ð´Ð»Ñ ÑекÑÑего запÑоÑа, Ñак же как Ð´ÐµÐ»Ð°ÐµÑ Ñказаниеexpanded=onв ÑпиÑке паÑамеÑÑов\pset.\hили\help[#команда]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´ÑÐºÐ°Ð·ÐºÑ Ð¿Ð¾ ÑинÑакÑиÑÑ Ñказанной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL. ÐÑли
командане Ñказана, Ñо psql вÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð´Ð¾ÑÑÑпна ÑпÑавка. ÐÑли в каÑеÑÑве command Ñказана звÑздоÑка (*), Ñо вÑводиÑÑÑ ÑпÑавка по вÑем командам SQL.РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\help, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.ÐÑимеÑание
ÐÐ»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° командÑ, ÑоÑÑоÑÑие из неÑколÑÐºÐ¸Ñ Ñлов, можно не заклÑÑаÑÑ Ð² кавÑÑки. Таким обÑазом, можно пÑоÑÑо пиÑаÑÑ
\help alter table.\Hили\html#ÐклÑÑÐ°ÐµÑ Ð²Ñвод запÑоÑов в ÑоÑмаÑе HTML. ÐÑли ÑоÑÐ¼Ð°Ñ HTML Ñже вклÑÑÑн, пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑеклÑÑение обÑаÑно на вÑÑовненнÑй ÑоÑмаÑ. ÐÑа команда иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑовмеÑÑимоÑÑи и ÑдобÑÑва, но в опиÑании
\psetÐ²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð¾ дÑÑÐ³Ð¸Ñ Ð²Ð°ÑианÑÐ°Ñ Ð²Ñвода.\iили\includeимÑ_Ñайла#ЧиÑÐ°ÐµÑ Ð²Ð²Ð¾Ð´ из Ñайла
имÑ_Ñайлаи вÑполнÑÐµÑ ÐµÐ³Ð¾, как бÑдÑо он бÑл набÑан на клавиаÑÑÑе.ÐÑли
имÑ_Ñайлазадано как-(минÑÑ), ÑиÑаеÑÑÑ ÑÑандаÑÑнÑй ввод до пÑизнака конÑа Ñайла или до меÑакомандÑ\q. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ Ð´Ð»Ñ ÑовмеÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑеÑакÑивного ввода Ñо вводом команд из Ñайлов. ÐамеÑÑÑе, ÑÑо пÑи ÑÑом поведение Readline бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ, ÑолÑко еÑли оно акÑивно на внеÑнем ÑÑовне.ÐÑимеÑание
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе видеÑÑ ÑÑÑоки Ñайла на ÑкÑане по меÑе Ð¸Ñ ÑÑениÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑÑановиÑÑ Ð´Ð»Ñ Ð¿ÐµÑеменной
ECHOзнаÑениеall.\ifвÑÑажение\elifвÑÑажение\else\endif#ÐÑа гÑÑппа команд ÑеализÑÐµÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñе ÑÑловнÑе блоки. УÑловнÑй блок должен наÑинаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
\ifи заканÑиваÑÑÑÑ\endif. ÐÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»Ñбое колиÑеÑÑво пÑедложений\elif, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно завеÑÑаÑÑÑÑ Ð¾Ð´Ð½Ð¸Ð¼ пÑедложением\else. ÐÐµÐ¶Ð´Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸, ÑоÑмиÑÑÑÑими блок ÑÑловиÑ, могÑÑ ÑазмеÑаÑÑÑÑ (и обÑÑно ÑазмеÑаÑÑÑÑ) обÑÑнÑе запÑоÑÑ Ð¸ дÑÑгие ÑÐ¸Ð¿Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ в обÑаÑнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ .ÐомандÑ
\ifи\elifÑÑиÑÑваÑÑ Ñвои аÑгÑменÑÑ Ð¸ вÑÑиÑлÑÑÑ Ð¸Ñ ÐºÐ°Ðº логиÑеÑкие вÑÑажениÑ. ÐÑли вÑÑажение вÑдаÑÑtrue, обÑабоÑка пÑодолжаеÑÑÑ ÐºÐ°Ðº обÑÑно; в пÑоÑивном ÑлÑÑае Ð²Ñ Ð¾Ð´Ð½Ñе ÑÑÑоки пÑопÑÑкаÑÑÑÑ Ð´Ð¾ доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´\elif,\elseили\endif. Ðак ÑолÑко пÑовеÑка\ifили\elifоказÑваеÑÑÑ ÑÑпеÑной, аÑгÑменÑÑ Ð¿Ð¾ÑледÑÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´\elifв Ñом же блоке не вÑÑиÑлÑÑÑÑÑ, а ÑÑиÑаÑÑÑÑ Ð»Ð¾Ð¶Ð½Ñми. СÑÑоки, ÑледÑÑÑие за\else, обÑабаÑÑваÑÑÑÑ ÑолÑко еÑли ни одна из пÑедÑдÑÑÐ¸Ñ Ð¿ÑовеÑок\ifили\elifне бÑла ÑÑпеÑной.РаÑгÑменÑе
вÑÑажениекоманд\ifи\elifпÑоизводиÑÑÑ Ð¿Ð¾Ð´ÑÑановка пеÑеменнÑÑ Ð¸ ÑаÑкÑÑÑие кавÑÑек, как и в аÑгÑменÑе лÑбой дÑÑгой ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой. ÐоÑле ÑÑого полÑÑенное знаÑение оÑениваеÑÑÑ ÐºÐ°Ðº знаÑение пеÑеменной да/неÑ. Так ÑÑо допÑÑÑимÑм знаÑением бÑÐ´ÐµÑ Ð»Ñбое однознаÑное Ð²Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ðµ без ÑÑÑÑа ÑегиÑÑÑа одной из ÑÑÑок (или подÑÑÑок):true,false,1,0,on,off,yes,no. ÐапÑимеÑ, ÑÑÑокиt,TиtRвÑе бÑдÑÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðºtrue.ÐÑли вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ пÑиводÑÑÑÑ Ðº знаÑениÑм true или false, бÑÐ´ÐµÑ Ð²Ñдано пÑедÑпÑеждение, а Ð¸Ñ ÑезÑлÑÑÐ°Ñ Ð±ÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ Ð»Ð¾Ð¶Ð½Ñм.
ÐÑопÑÑкаемÑе ÑÑÑоки ÑазбиÑаÑÑÑÑ ÐºÐ°Ðº обÑÑно (в Ð½Ð¸Ñ Ð²ÑÑвлÑÑÑÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð¸ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой), но не пеÑедаÑÑÑÑ ÑеÑвеÑÑ, а ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой, оÑлиÑнÑе Ð¾Ñ ÑÑловнÑÑ (
\if,\elif,\else,\endif), пÑоÑÑо игноÑиÑÑÑÑÑÑ. Ð ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ ÑÑловий пÑовеÑÑеÑÑÑ ÑолÑко пÑавилÑноÑÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ð¾ÑÑи. СÑÑлки на пеÑеменнÑе в пÑопÑÑкаемÑÑ ÑÑÑÐ¾ÐºÐ°Ñ Ð½Ðµ ÑазвоÑаÑиваÑÑÑÑ, как не вÑполнÑеÑÑÑ Ð¸ ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.ÐÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой в одном ÑÑловном блоке Ð´Ð¾Ð»Ð¶Ð½Ñ ÑодеÑжаÑÑÑÑ Ð² одном иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ Ñайле. ÐÑли до Ñого, как бÑдÑÑ Ð·Ð°ÐºÑÑÑÑ Ð²Ñе локалÑнÑе блоки
\if, в оÑновном Ñайле команд бÑÐ´ÐµÑ Ð´Ð¾ÑÑигнÑÑ ÐºÐ¾Ð½ÐµÑ Ñайла или вÑÑÑеÑиÑÑÑ Ð²ÐºÐ»ÑÑение дÑÑгого Ñайла (команда\include), psql вÑдаÑÑ Ð¾ÑибкÑ.ÐапÑимеÑ:
-- пÑовеÑка ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð²ÑÑ Ð¾ÑделÑнÑÑ Ð·Ð°Ð¿Ð¸Ñей в базе даннÑÑ Ð¸ ÑÐ¾Ñ Ñанение -- ÑезÑлÑÑаÑов в двÑÑ ÑазнÑÑ Ð¿ÐµÑеменнÑÑ psql SELECT EXISTS(SELECT 1 FROM customer WHERE customer_id = 123) as is_customer, EXISTS(SELECT 1 FROM employee WHERE employee_id = 456) as is_employee \gset \if :is_customer SELECT * FROM customer WHERE customer_id = 123; \elif :is_employee \echo 'is not a customer but is an employee' SELECT * FROM employee WHERE employee_id = 456; \else \if yes \echo 'not a customer or employee' \else \echo 'this will never print' \endif \endif\irили\include_relativeимÑ_Ñайла#Ðоманда
\irÐ¿Ð¾Ñ Ð¾Ð¶Ð° на\i, но по-ÑÐ°Ð·Ð½Ð¾Ð¼Ñ Ð¸Ð½ÑеÑпÑеÑиÑÑÐµÑ Ð¾ÑноÑиÑелÑнÑе имена Ñайлов. ÐÑи вÑполнении в инÑеÑакÑивном Ñежиме две ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²ÐµÐ´ÑÑ ÑÐµÐ±Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾. Ðднако пÑи вÑзове из ÑкÑипÑа\irинÑеÑпÑеÑиÑÑÐµÑ Ð¸Ð¼ÐµÐ½Ð° Ñайлов оÑноÑиÑелÑно каÑалога, в коÑоÑом ÑаÑположен ÑкÑипÑ, а не ÑекÑÑего ÑабоÑего каÑалога.\l[+]или\list[+] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок баз даннÑÑ Ð½Ð° ÑеÑвеÑе и показÑÐ²Ð°ÐµÑ Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð°, владелÑÑев, кодиÑÐ¾Ð²ÐºÑ Ð½Ð°Ð±Ð¾Ñа Ñимволов и пÑава доÑÑÑпа. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ñакже оÑобÑажаÑÑÑÑ: ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑаблиÑное пÑоÑÑÑанÑÑво по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ опиÑание. (ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑазмеÑе доÑÑÑпна ÑолÑко Ð´Ð»Ñ Ð±Ð°Ð· даннÑÑ , к коÑоÑÑм ÑекÑÑий полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ.)\lo_export#oid_ÐÐимÑ_ÑайлаЧиÑÐ°ÐµÑ Ð±Ð¾Ð»ÑÑой обÑÐµÐºÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм
oid_ÐÐиз Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ запиÑÑÐ²Ð°ÐµÑ ÐµÐ³Ð¾ в ÑайлимÑ_Ñайла. ÐбÑаÑиÑе внимание, ÑÑо ÑÑо неÑколÑко оÑлиÑаеÑÑÑ Ð¾Ñ ÑеÑвеÑной ÑÑнкÑииlo_export, дейÑÑвÑÑÑей Ñ Ð¿Ñавами полÑзоваÑелÑ, Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ коÑоÑого ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , и в Ñайловой ÑиÑÑеме ÑеÑвеÑа.ÐодÑказка
ÐÑполÑзÑйÑе
\lo_listÐ´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ OID болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов.\lo_import#имÑ_Ñайла[комменÑаÑий]Ð¡Ð¾Ñ ÑанÑÐµÑ Ñайл в болÑÑом обÑекÑе Postgres Pro. ÐÑи ÑÑом Ñ Ð¾Ð±ÑекÑом Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑвÑзан ÑказаннÑй комменÑаÑий. ÐÑимеÑ:
foo=>
\lo_import '/home/peter/pictures/photo.xcf' 'a picture of me'lo_import 152801ÐÑÐ²ÐµÑ ÑказÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо болÑÑой обÑÐµÐºÑ Ð¿Ð¾Ð»ÑÑил OID 152801, коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзован Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к Ð²Ð½Ð¾Ð²Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ Ð² бÑдÑÑем. ÐÐ»Ñ ÑдобÑÑва ÑÑÐµÐ½Ð¸Ñ ÑекомендÑеÑÑÑ Ð²Ñегда ÑвÑзÑваÑÑ Ð¾Ð±ÑекÑÑ Ñ Ð¿Ð¾Ð½ÑÑнÑми комменÑаÑиÑми. OID и комменÑаÑии можно поÑмоÑÑеÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
\lo_list.ÐбÑаÑиÑе внимание, ÑÑо ÑÑо немного оÑлиÑаеÑÑÑ Ð¾Ñ ÑÑнкÑии ÑеÑвеÑа
lo_import, Ñак как дейÑÑвÑÐµÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ локалÑного полÑзоваÑÐµÐ»Ñ Ð² локалÑной Ñайловой ÑиÑÑеме, а не полÑзоваÑÐµÐ»Ñ ÑеÑвеÑа в Ñайловой ÑиÑÑеме ÑеÑвеÑа.\lo_list[+]#ÐоказÑÐ²Ð°ÐµÑ ÑпиÑок вÑÐµÑ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов PostgreSQL, Ñ ÑанÑÑÐ¸Ñ ÑÑ Ð² базе даннÑÑ , вмеÑÑе Ñ Ð¿ÑедоÑÑавленнÑми комменÑаÑиÑми. ÐÑи добавлении
+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ болÑÑого обÑекÑа оÑобÑажаÑÑÑÑ Ð¿Ñава доÑÑÑпа к немÑ, еÑли они назнаÑенÑ.\lo_unlink#oid_ÐÐУдалÑÐµÑ Ð±Ð¾Ð»ÑÑой обÑÐµÐºÑ Ñ
oid_ÐÐиз Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .ÐодÑказка
ÐÑполÑзÑйÑе
\lo_listÐ´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ OID болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов.\oили\out [имÑ_Ñайла]\oили\out [ |#команда]РезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑов бÑдÑÑ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² Ñайле
имÑ_Ñайлаили пеÑенапÑавлÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ðµ оболоÑки (заданной аÑгÑменÑомкоманда). ÐÑли аÑгÑÐ¼ÐµÐ½Ñ Ð½Ðµ Ñказан, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑов пеÑенапÑавлÑÑÑÑÑ Ð½Ð° ÑÑандаÑÑнÑй вÑвод.ÐÑли аÑгÑÐ¼ÐµÐ½Ñ Ð½Ð°ÑинаеÑÑÑ Ñ
|, веÑÑ Ð¾ÑÑаÑок ÑÑÑоки воÑпÑинимаеÑÑÑ ÐºÐ°ÐºÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, подлежаÑÐ°Ñ Ð²ÑполнениÑ, в коÑоÑой не пÑоизводиÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек. ÐÑо пÑодолжение ÑÑÑоки пÑоÑÑо пеÑедаÑÑÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñке в бÑквалÑном виде.«РезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑов» вклÑÑаÑÑ Ð² ÑÐµÐ±Ñ Ð²Ñе ÑаблиÑÑ, оÑвеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´, ÑведомлениÑ, полÑÑеннÑе Ð¾Ñ ÑеÑвеÑа баз даннÑÑ , а Ñакже вÑвод Ð¾Ñ Ð¼ÐµÑакоманд, обÑаÑаÑÑÐ¸Ñ ÑÑ Ðº базе (ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº
\d), но не ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ .ÐодÑказка
ЧÑÐ¾Ð±Ñ Ð²ÑÑавиÑÑ ÑекÑÑ Ð¼ÐµÐ¶Ð´Ñ ÑезÑлÑÑаÑами запÑоÑов, иÑполÑзÑйÑе
\qecho.\pили\print#ÐеÑаÑÐ°ÐµÑ ÑодеÑжимое бÑÑеÑа ÑекÑÑего запÑоÑа в ÑÑандаÑÑнÑй вÑвод. ÐÑли ÑÑÐ¾Ñ Ð±ÑÑÐµÑ Ð¿ÑÑÑ, бÑÐ´ÐµÑ Ð½Ð°Ð¿ÐµÑаÑан поÑледний вÑполненнÑй запÑоÑ.
\password [#имÑ_полÑзоваÑелÑ]ÐзменÑÐµÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ñказанного полÑзоваÑÐµÐ»Ñ (по ÑмолÑаниÑ, ÑекÑÑего полÑзоваÑелÑ). ÐÑа команда запÑаÑÐ¸Ð²Ð°ÐµÑ Ð½Ð¾Ð²Ñй паÑолÑ, ÑиÑÑÑÐµÑ Ð¸ оÑпÑавлÑÐµÑ ÐµÐ³Ð¾ на ÑеÑÐ²ÐµÑ Ð² виде командÑ
ALTER ROLE. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо новÑй паÑÐ¾Ð»Ñ Ð½Ðµ оÑобÑажаеÑÑÑ Ð² оÑкÑÑÑом виде в иÑÑоÑии команд или в дÑÑгом меÑÑе. ÐÑи запиÑи в жÑÑнал ÑеÑвеÑа паÑоли маÑкиÑÑÑÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.\prompt [#ÑекÑÑ]имÑÐÑÐµÐ´Ð»Ð°Ð³Ð°ÐµÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²Ð²ÐµÑÑи знаÑение, коÑоÑое бÑÐ´ÐµÑ Ð¿ÑиÑвоено пеÑеменной
имÑ. ÐополниÑелÑно можно ÑказаÑÑÑекÑÑподÑказки. (ÐÑли подÑказка ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· неÑколÑÐºÐ¸Ñ Ñлов, Ñо ÐµÑ ÑекÑÑ Ð½Ñжно взÑÑÑ Ð² одинаÑнÑе кавÑÑки).Ðо ÑмолÑаниÑ,
\promptиÑполÑзÑÐµÑ ÑеÑминал Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° и вÑвода. Ðднако еÑли иÑполÑзÑеÑÑÑ Ð¿Ð°ÑамеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки-f,\promptиÑполÑзÑÐµÑ ÑÑандаÑÑнÑй ввод и ÑÑандаÑÑнÑй вÑвод.\pset [#паÑамеÑÑ[знаÑение] ]ÐÑа команда ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¿Ð°ÑамеÑÑÑ, влиÑÑÑие на вÑвод ÑезÑлÑÑаÑов запÑоÑов. Указание
паÑамеÑÑопÑеделÑеÑ, какой паÑамеÑÑ ÑÑебÑеÑÑÑ ÑÑÑановиÑÑ. СеманÑиказнаÑениÑзавиÑÐ¸Ñ Ð¾Ñ Ð²ÑбÑанного паÑамеÑÑа. ÐÐ»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ð¿Ð°ÑамеÑÑов оÑÑÑÑÑÑвиезнаÑениÑознаÑÐ°ÐµÑ Ð¿ÐµÑеклÑÑение знаÑениÑ, либо ÑбÑÐ¾Ñ Ð·Ð½Ð°ÑениÑ, как опиÑано ниже в Ñазделе конкÑеÑного паÑамеÑÑа. ÐÑли Ñакое поведение не ÑпоминаеÑÑÑ, Ñо пÑопÑÑкзнаÑениÑпÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑекÑÑего знаÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑа.\psetбез аÑгÑменÑов вÑÐ²Ð¾Ð´Ð¸Ñ ÑекÑÑий ÑÑаÑÑÑ Ð²ÑÐµÑ Ð¿Ð°ÑамеÑÑов командÑ.ÐмеÑÑÑÑ ÑледÑÑÑие паÑамеÑÑÑ:
border#ÐдеÑÑ
знаÑениедолжно бÑÑÑ ÑиÑлом. Ð Ñелом, Ñем болÑÑе ÑÑо ÑиÑло, Ñем болÑÑе гÑÐ°Ð½Ð¸Ñ Ð¸ линий бÑÐ´ÐµÑ Ð² ÑаблиÑÐ°Ñ , но деÑали завиÑÑÑ Ð¾Ñ ÑоÑмаÑа. Ð ÑоÑмаÑе HTML заданное знаÑение напÑÑмÑÑ Ð¾ÑобÑажаеÑÑÑ Ð² аÑÑибÑÑborder=.... ÐÐ»Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ ÑоÑмаÑов имеÑÑ ÑмÑÑл ÑолÑко знаÑÐµÐ½Ð¸Ñ 0 (Ð½ÐµÑ Ð³ÑаниÑÑ), 1 (внÑÑÑенние ÑазделиÑелÑнÑе линии) и 2 (гÑаниÑа ÑаблиÑÑ), а знаÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑе 2 воÑпÑинимаÑÑÑÑ ÐºÐ°Ðºborder = 2. ФоÑмаÑÑlatexиlatex-longtableдополниÑелÑно поддеÑживаÑÑ Ð·Ð½Ð°Ñение 3, добавлÑÑÑее ÑазделиÑелÑнÑе линии Ð¼ÐµÐ¶Ð´Ñ ÑÑÑоками даннÑÑ .columns#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑиÑÐ¸Ð½Ñ Ð´Ð»Ñ ÑоÑмаÑа
wrapped, а Ñакже огÑаниÑение по ÑиÑине, ÑвÑÑе коÑоÑого бÑÐ´ÐµÑ ÑÑебоваÑÑÑÑ Ð¿Ð¾ÑÑÑаниÑник или пÑоизойдÑÑ Ð¿ÐµÑеклÑÑение в веÑÑикалÑное оÑобÑажение пÑи Ñежимеexpanded auto. ÐÑи знаÑении 0 (по ÑмолÑаниÑ) макÑималÑÐ½Ð°Ñ ÑиÑина ÑпÑавлÑеÑÑÑ Ð¿ÐµÑеменной ÑÑедÑCOLUMNSили ÑиÑиной ÑкÑана, еÑлиCOLUMNSне ÑÑÑановлена. ÐÑоме Ñого, еÑлиcolumnsÑавно нÑлÑ, Ñо ÑоÑмаÑwrappedвлиÑÐµÑ ÑолÑко на вÑвод на ÑкÑан. ÐÑлиcolumnsне Ñавно 0, Ñо ÑÑо Ñакже влиÑÐµÑ Ð½Ð° вÑвод в Ñайл или в дÑÑгÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑеÑез канал.csv_fieldsep#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ ÑоÑмаÑа вÑвода CSV. ÐÑли Ñимвол-ÑазделиÑÐµÐ»Ñ Ð¾ÐºÐ°Ð·ÑваеÑÑÑ Ð²Ð½ÑÑÑи знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ, оно вÑводиÑÑÑ Ð² двойнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ ÑоглаÑно ÑÑандаÑÑнÑм пÑавилам CSV. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑазделиÑелем ÑвлÑеÑÑÑ Ð·Ð°Ð¿ÑÑаÑ.
expanded(илиx) #Указанное
знаÑениедопÑÑÐºÐ°ÐµÑ Ð²Ð°ÑианÑÑonилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ ÑазвÑÑнÑÑÑй Ñежим, либоauto. ÐÑлизнаÑениеопÑÑено, команда вклÑÑаеÑ/оÑклÑÑÐ°ÐµÑ Ñежим. Ðогда ÑазвÑÑнÑÑÑй Ñежим вклÑÑÑн, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑа вÑводÑÑÑÑ Ð² две колонки: Ð¸Ð¼Ñ ÑÑолбÑа в левой, даннÑе в пÑавой. ÐÑÐ¾Ñ Ñежим полезен, еÑли даннÑе не помеÑаÑÑÑÑ Ð½Ð° ÑкÑане в обÑÑном «гоÑизонÑалÑном» Ñежиме. ÐÑи вÑбоÑеautoÑазвÑÑнÑÑÑй Ñежим иÑполÑзÑеÑÑÑ, когда ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÑколÑко ÑÑолбÑов и по ÑиÑине не ÑмеÑаеÑÑÑ Ð½Ð° ÑкÑане; в пÑоÑивном ÑлÑÑае иÑполÑзÑеÑÑÑ Ð¾Ð±ÑÑнÑй Ñежим. РежимautoÑаÑпÑоÑÑÑанÑеÑÑÑ ÑолÑко на ÑоÑмаÑÑalignedиwrapped. С дÑÑгими ÑоÑмаÑами он вÑегда ÑавнознаÑен оÑклÑÑÑÐ½Ð½Ð¾Ð¼Ñ ÑоÑÑоÑниÑ.fieldsep#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода запÑоÑов. Таким обÑазом, можно ÑоÑмиÑоваÑÑ Ð²Ñвод, в коÑоÑом знаÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑазделенÑ, напÑимеÑ, ÑабÑлÑÑией. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедпоÑÑиÑелÑнÑм Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² дÑÑÐ³Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ð°Ñ . ÐÐ»Ñ ÑÑÑановки Ñимвола ÑабÑлÑÑии в каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ введиÑе
\pset fieldsep '\t'. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð²ÐµÑÑикалÑÐ½Ð°Ñ ÑеÑÑа ('|').fieldsep_zero#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода в нÑлевой байÑ.
footer#ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð´Ð²Ð° ваÑианÑа
знаÑениÑ:onилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ Ð²Ñвод ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом вÑбÑаннÑÑ Ð·Ð°Ð¿Ð¸Ñей(. ÐÑлиnÑÑÑок)знаÑениене Ñказано, Ñо команда пеÑеклÑÑÐ°ÐµÑ ÑекÑÑее знаÑение вonилиoff.format#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ из ÑледÑÑÑÐ¸Ñ ÑоÑмаÑов вÑвода:
aligned,asciidoc,csv,html,latex,latex-longtable,troff-ms,unalignedилиwrapped. ÐопÑÑкаеÑÑÑ ÑокÑаÑение Ñлова до ÑникалÑного знаÑениÑ.ФоÑмаÑ
alignedÑÑо ÑÑандаÑÑнÑй, ÑдобоÑиÑаемÑй, Ñ Ð¾ÑоÑо оÑÑоÑмаÑиÑованнÑй ÑекÑÑовÑй вÑвод. ÐÑполÑзÑеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.Ð ÑоÑмаÑе
unalignedвÑе ÑÑолбÑÑ Ð²ÑводÑÑÑÑ Ð² одной ÑÑÑоке и оÑделÑÑÑÑÑ Ð´ÑÑг Ð¾Ñ Ð´ÑÑга акÑивнÑм ÑазделиÑелем полей. ÐÑо полезно Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð²Ñвода, коÑоÑÑй бÑдÑÑ ÑиÑаÑÑ Ð´ÑÑгие пÑогÑаммÑ, напÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ Ð²Ñвода даннÑÑ Ñ ÑазделиÑелем Tab или ÑеÑез запÑÑÑÑ. ÐÑи ÑÑом, еÑли ÑазделиÑÐµÐ»Ñ Ð¾ÐºÐ°Ð¶ÐµÑÑÑ Ð² ÑодеÑжимом ÑÑолбÑа, ÑÑÐ¾Ñ Ñимвол бÑÐ´ÐµÑ Ð²Ñведен как еÑÑÑ; в ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½ÐµÐµ бÑÐ´ÐµÑ ÑоÑÐ¼Ð°Ñ CSV.Ð ÑоÑмаÑе
csvзнаÑÐµÐ½Ð¸Ñ ÑÑолбÑов вÑводÑÑÑÑ ÑеÑез запÑÑÑÑ Ð¸ могÑÑ Ð·Ð°ÐºÐ»ÑÑаÑÑÑÑ Ð² кавÑÑки по пÑавилам, опиÑаннÑм в RFC 4180. ÐÑвод ÑÑого ÑоÑмаÑа ÑовмеÑÑим Ñ ÑоÑмаÑом CSV ÑеÑвеÑной командÑCOPY. ÐеÑвой вÑводиÑÑÑ ÑÑÑока Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ ÑÑолбÑов, еÑли ÑолÑко не вклÑÑÑн Ñежимtuples_only. ÐеÑÑ Ð½Ð¸Ð¹ и нижний колонÑиÑÑÐ»Ñ Ð½Ðµ вÑводÑÑÑÑ. СÑÑоки ÑазделÑÑÑÑÑ Ñимволами конÑа ÑÑÑоки, завиÑÑÑими Ð¾Ñ ÐС; обÑÑно ÑÑо Ñимвол новой ÑÑÑоки (\n) в Unix-подобнÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð¸ комбинаÑÐ¸Ñ Ñимволов пеÑевода каÑеÑки и новой ÑÑÑоки (\r\n) в Microsoft Windows. ÐÑлиÑнÑй Ð¾Ñ Ð·Ð°Ð¿ÑÑой ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ можно ÑÑÑановиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹\pset csv_fieldsep.ФоÑмаÑ
wrappedÐ¿Ð¾Ñ Ð¾Ð¶ наaligned, но пеÑеноÑÐ¸Ñ Ð´Ð»Ð¸Ð½Ð½Ñе знаÑÐµÐ½Ð¸Ñ ÑÑолбÑов на новÑе ÑÑÑоки, ÑÑÐ¾Ð±Ñ Ð¾Ð±Ñий вÑвод помеÑÑилÑÑ Ð² заданнÑÑ ÑиÑинÑ. Ðадание ÑиÑÐ¸Ð½Ñ Ð²Ñвода опиÑано в паÑамеÑÑеcolumns. ÐбÑаÑиÑе внимание, ÑÑо psql не бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð¿ÐµÑеноÑиÑÑ Ð½Ð° новÑе ÑÑÑоки заголовки ÑÑолбÑов. ÐоÑÑÐ¾Ð¼Ñ ÑоÑмаÑwrappedÑабоÑÐ°ÐµÑ Ñак же, какalignedеÑли обÑÐ°Ñ ÑиÑина, ÑÑебÑÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð²ÑÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² ÑÑолбÑов, пÑевÑÑÐ°ÐµÑ ÑÑÑановленнÑÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑиÑинÑ.ФоÑмаÑÑ
asciidoc,html,latex,latex-longtableиtroff-msвÑводÑÑ ÑаблиÑÑ, коÑоÑÑе пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² докÑменÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑооÑвеÑÑÑвÑÑÑего ÑзÑка ÑазмеÑки. Ðни не ÑвлÑÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑеннÑми докÑменÑами! ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ кÑиÑиÑно Ð´Ð»Ñ HTML, но Ð´Ð»Ñ LaTeX обÑзаÑелен докÑменÑ-конÑейнеÑ. ФоÑмаÑlatexиÑполÑзÑÐµÑ ÑÑÐµÐ´Ñ LaTeXtabular, а ÑоÑмаÑlatex-longtableÑÑебÑÐµÑ Ð½Ð°Ð»Ð¸ÑÐ¸Ñ Ð¿Ð°ÐºÐµÑовlongtableиbooktabs.linestyle#ÐадаÑÑ ÑÑÐ¸Ð»Ñ Ð¾ÑÑиÑовки линий гÑаниÑÑ:
ascii,old-asciiилиunicode. ÐопÑÑкаеÑÑÑ ÑокÑаÑение Ñлова до ÑникалÑного знаÑениÑ. (ÐÑо знаÑиÑ, ÑÑо одной бÑÐºÐ²Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾ÑÑаÑоÑно.) ÐнаÑение по ÑмолÑаниÑ:ascii. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ ÑолÑко в ÑоÑмаÑаÑalignedиwrapped.СÑилÑ
asciiиÑполÑзÑÐµÑ Ð¾Ð±ÑÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки в даннÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ Ñ Ð¸ÑполÑзованием Ñимвола+в пÑавом поле. Ðогда пÑи ÑоÑмаÑеwrappedпÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑÐµÐ½Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° новÑÑ ÑÑÑÐ¾ÐºÑ (без Ñимвола новой ÑÑÑоки), ÑÑавиÑÑÑ ÑоÑка (.) в пÑавом поле пеÑвой ÑÑÑоки и ÑоÑка в левом поле ÑледÑÑÑей ÑÑÑоки.СÑилÑ
old-asciiиÑполÑзÑÐµÑ Ð¾Ð±ÑÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII в ÑÑиле PostgreSQL 8.4 и ÑанÑÑе. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки в даннÑÑ Ð¾ÑобÑажаÑÑÑÑ, иÑполÑзÑÑ Ñимвол:вмеÑÑо левого ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹. Ðогда пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑÐµÐ½Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° новÑÑ ÑÑÑÐ¾ÐºÑ Ð±ÐµÐ· Ñимвола новой ÑÑÑоки, Ñимвол;иÑполÑзÑеÑÑÑ Ð²Ð¼ÐµÑÑо левого ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹.СÑилÑ
unicodeиÑполÑзÑÐµÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð° Ð´Ð»Ñ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ð½Ð¸Ð¹. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки в даннÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ Ñ Ð¸ÑполÑзованием Ñимвола возвÑаÑа каÑеÑки в пÑавом поле. Ðогда пÑи ÑоÑмаÑеwrappedпÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑÐµÐ½Ð¾Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ð° новÑÑ ÑÑÑÐ¾ÐºÑ (без Ñимвола новой ÑÑÑоки), ÑÑавиÑÑÑ Ñимвол многоÑоÑÐ¸Ñ Ð² пÑавом поле пеÑвой ÑÑÑоки и в левом поле ÑледÑÑÑей ÑÑÑоки.Ðогда знаÑение
borderболÑÑе нÑлÑ, паÑамеÑÑlinestyleÑакже опÑеделÑÐµÑ ÑимволÑ, коÑоÑÑми бÑдÑÑ ÑиÑоваÑÑÑÑ Ð³ÑаниÑÑ. ÐбÑÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII ÑабоÑаÑÑ Ð²ÐµÐ·Ð´Ðµ, но ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð° ÑмоÑÑÑÑÑÑ Ð»ÑÑÑе на ÑеÑÐ¼Ð¸Ð½Ð°Ð»Ð°Ñ , ÑаÑпознаÑÑÐ¸Ñ Ð¸Ñ .null#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÑокÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð½Ð°Ð¿ÐµÑаÑана вмеÑÑо знаÑÐµÐ½Ð¸Ñ null. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ðµ пеÑаÑаеÑÑÑ Ð½Ð¸Ñего, ÑÑо можно оÑибоÑно пÑинÑÑÑ Ð·Ð° пÑÑÑÑÑ ÑÑÑокÑ. ÐапÑимеÑ, можно бÑло Ð±Ñ Ð¿ÑедпоÑеÑÑÑ
\pset null '(null)'.numericlocale#ÐÑли задаÑÑÑÑ
знаÑение, Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð´Ð²Ð° ваÑианÑа:onилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ Ð¾ÑобÑажение ÑпеÑиÑиÑного Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸ Ñимвола, ÑазделÑÑÑего гÑÑÐ¿Ð¿Ñ ÑиÑÑ Ð»ÐµÐ²ÐµÐµ деÑÑÑиÑной ÑоÑки. ÐÑлизнаÑениене Ñказано, Ñо команда пеÑеклÑÑÐ°ÐµÑ Ð²Ñвод ÑиÑел Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ на обÑÑнÑй и обÑаÑно.pager#УпÑавлÑÐµÑ Ð¸ÑполÑзованием поÑÑÑаниÑника Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа ÑезÑлÑÑаÑов запÑоÑов и ÑпÑавоÑной инÑоÑмаÑии psql. ÐÑли
pagerÐ¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеoff, пÑогÑамма поÑÑÑаниÑного пÑоÑмоÑÑа (поÑÑÑаниÑник) не иÑполÑзÑеÑÑÑ. ÐÑлиpagerÐ¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеon, ÑÑа пÑогÑамма иÑполÑзÑеÑÑÑ Ð¿Ñи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи, Ñ. е. когда вÑвод на ÑеÑминал не помеÑаеÑÑÑ Ð½Ð° ÑкÑане. ÐаÑамеÑÑpagerÑакже Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð·Ð½Ð°Ñениеalways, пÑи ÑÑом поÑÑÑаниÑник бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð²Ñегда, незавиÑимо Ð¾Ñ Ñого, помеÑаеÑÑÑ Ð²Ñвод на ÑкÑан ÑеÑминала или неÑ. Ðоманда\pset pagerбез ÑказаниÑзнаÑениÑпеÑеклÑÑÐ°ÐµÑ Ð²Ð°ÑианÑÑonиoff.ÐÑли ÑÑÑановлена пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑедÑ
PSQL_PAGERилиPAGER, вÑвод пеÑедаÑÑÑÑ Ñказанной пÑогÑамме. РпÑоÑивном ÑлÑÑае иÑполÑзÑеÑÑÑ Ð¿Ð»Ð°ÑÑоÑмозавиÑÐ¸Ð¼Ð°Ñ Ð¿ÑогÑамма по ÑмолÑÐ°Ð½Ð¸Ñ (напÑимеÑ,more).Ðоманда
\watch, коÑоÑÐ°Ñ Ð¿Ð¾Ð²ÑоÑÑÐµÑ Ð¾Ð´Ð¸Ð½ и ÑÐ¾Ñ Ð¶Ðµ запÑоÑ, Ð´Ð»Ñ Ð²ÑбоÑа поÑÑÑаниÑника вмеÑÑо ÑÑого иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑÑ ÑÑедÑPSQL_WATCH_PAGER(в ÑиÑÑÐµÐ¼Ð°Ñ Unix). ÐÐ»Ñ Ñакого вÑвода поÑÑÑаниÑник вÑбиÑаеÑÑÑ Ð¾ÑделÑно, поÑÐ¾Ð¼Ñ ÑÑо ÑÑадиÑионнÑе поÑÑÑаниÑники могÑÑ Ð¾Ð±ÑабаÑÑваÑÑ ÐµÐ³Ð¾ некоÑÑекÑно, но Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑедаваÑÑ ÐµÐ³Ð¾ пÑогÑаммам, ÑаÑпознаÑÑим ÑÑÐ¾Ñ ÑоÑÐ¼Ð°Ñ Ð²Ñвода psql (напÑимеÑ,pspg --stream).pager_min_lines#ÐÑли в
pager_min_linesзадаÑÑÑÑ ÑиÑло, пÑевÑÑаÑÑее вÑÑоÑÑ ÑÑÑаниÑÑ, пÑогÑамма поÑÑÑаниÑного вÑвода не бÑÐ´ÐµÑ Ð²ÑзÑваÑÑÑÑ, пока не набеÑÑÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ ÑиÑло ÑÑÑок Ð´Ð»Ñ Ð²Ñвода. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ â 0.recordsep#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¸Ñей (ÑÑÑок) Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ñимвол новой ÑÑÑоки.
recordsep_zero#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода в нÑлевой байÑ.
tableattr(илиT) #УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð°ÑÑибÑÑÑ, коÑоÑÑе бÑдÑÑ Ð¿Ð¾Ð¼ÐµÑÐµÐ½Ñ Ð² Ñег
table, пÑи ÑоÑмаÑе вÑвода HTML. ÐапÑимеÑ, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑcellpaddingилиborder. ÐамеÑÑÑе, ÑÑо, веÑоÑÑно, не нÑжно здеÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑborder, Ñак как Ð´Ð»Ñ ÑÑого Ñже еÑÑÑ\pset border. ÐÑлизнаÑениене задано, аÑÑибÑÑÑ ÑаблиÑÑ ÑдалÑÑÑÑÑ.Ð ÑоÑмаÑе
latex-longtableÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ ÐºÐ¾Ð½ÑÑолиÑÑÐµÑ Ð¿ÑопоÑÑионалÑнÑÑ ÑиÑÐ¸Ð½Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑÑолбÑа, даннÑе коÑоÑого вÑÑÐ¾Ð²Ð½ÐµÐ½Ñ Ð¿Ð¾ Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ. Ðн ÑказÑваеÑÑÑ ÐºÐ°Ðº ÑпиÑок ÑазделÑннÑÑ Ð¿Ñобелами знаÑений, напÑимеÑ'0.2 0.2 0.6'. ÐÐ»Ñ ÑÑолбÑов, коÑоÑÑм не Ñ Ð²Ð°ÑÐ°ÐµÑ Ð·Ð½Ð°Ñений, иÑполÑзÑеÑÑÑ Ð¿Ð¾Ñледнее из заданнÑÑ .title(илиC) #УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ÑаблиÑÑ Ð´Ð»Ñ Ð»ÑбÑÑ Ð²Ð¿Ð¾ÑледÑÑвии вÑводимÑÑ ÑаблиÑ. ÐÑо можно иÑполÑзоваÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¾Ð¿Ð¸ÑаÑелÑнÑÑ Ñегов пÑи ÑоÑмиÑовании вÑвода. ÐÑли
знаÑениене задано, заголовок ÑаблиÑÑ ÑдалÑеÑÑÑ.tuples_only(илиt) #ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð´Ð²Ð° ваÑианÑа
знаÑениÑ:onилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ Ñежим вÑвода ÑолÑко коÑÑежей. ÐÑлизнаÑениене Ñказано, Ñо команда пеÑеклÑÑÐ°ÐµÑ Ñ Ñежима вÑвода ÑолÑко коÑÑежей на обÑÑнÑй Ñежим и обÑаÑно. ÐбÑÑнÑй вÑвод вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð¸Ð½ÑоÑмаÑиÑ, ÑакÑÑ ÐºÐ°Ðº заголовки ÑÑолбÑов и ÑазлиÑнÑе колонÑиÑÑлÑ. Ð Ñежиме вÑвода ÑолÑко коÑÑежей оÑобÑажаÑÑÑÑ ÑолÑко ÑакÑиÑеÑкие ÑаблиÑнÑе даннÑе.unicode_border_linestyle#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÐ¸Ð»Ñ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð³ÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑÑÐ¸Ð»Ñ Ð»Ð¸Ð½Ð¸Ð¹
unicode:single(одинаÑнÑй) илиdouble(двойной).unicode_column_linestyle#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÐ¸Ð»Ñ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº Ð´Ð»Ñ ÑÑÐ¸Ð»Ñ Ð»Ð¸Ð½Ð¸Ð¹
unicode:single(одинаÑнÑй) илиdouble(двойной).unicode_header_linestyle#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÐ¸Ð»Ñ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° Ð´Ð»Ñ ÑÑÐ¸Ð»Ñ Ð»Ð¸Ð½Ð¸Ð¹
unicode:single(одинаÑнÑй) илиdouble(двойной).xheader_width#УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑиÑÐ¸Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° Ð´Ð»Ñ ÑаÑÑиÑенного Ñежима вÑвода. ÐопÑÑÑимÑе знаÑениÑ:
full(знаÑение по ÑмолÑаниÑ),column,pageилиÑелое_ÑиÑло.full: заголовок в ÑаÑÑиÑенном Ñежиме не обÑезаеÑÑÑ, ÑÑÑока ÑоÑмаÑиÑÑеÑÑÑ Ð¿Ð¾ ÑÐ°Ð¼Ð¾Ð¼Ñ ÑиÑÐ¾ÐºÐ¾Ð¼Ñ ÑÑолбÑÑ.column: ÑÑÑока заголовка обÑезаеÑÑÑ Ð´Ð¾ ÑиÑÐ¸Ð½Ñ Ð¿ÐµÑвого ÑÑолбÑа вÑвода.page: ÑÑÑока заголовка обÑезаеÑÑÑ Ð´Ð¾ ÑиÑÐ¸Ð½Ñ Ð¾ÐºÐ½Ð° ÑеÑминала.Ñелое_ÑиÑло: ÑÑÑока заголовка обÑезаеÑÑÑ Ð¿Ð¾ Ñказанной макÑималÑной ÑиÑине.
ÐллÑÑÑÑаÑÐ¸Ñ Ñого, как могÑÑ Ð²ÑглÑдеÑÑ ÑазлиÑнÑе ÑоÑмаÑÑ, можно ÑвидеÑÑ Ð² Ñазделе ÐÑимеÑÑ Ð½Ð¸Ð¶Ðµ.
ÐодÑказка
ÐÐ»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ð¿Ð°ÑамеÑÑов
\psetеÑÑÑ ÐºÐ¾ÑоÑкие командÑ. См.\a,\C,\f,\H,\t,\Tи\x.\qили\quit#ÐÑÑ Ð¾Ð´ из psql. ÐÑи иÑполÑзовании в ÑкÑипÑе пÑекÑаÑаеÑÑÑ ÑолÑко вÑполнение ÑÑого ÑкÑипÑа.
\qecho#ÑекÑÑ[ ... ]ÐÑа команда иденÑиÑна
\echoза иÑклÑÑением Ñого, ÑÑо вÑвод бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð² канал вÑвода запÑоÑов, ÑÑÑановленнÑй\o.\rили\reset#СбÑаÑÑÐ²Ð°ÐµÑ (оÑиÑаеÑ) бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа.
\restrict#restrict_keyÐклÑÑÐ°ÐµÑ Ð¾Ð³ÑаниÑеннÑй Ñежим Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм клÑÑом. Рданном Ñежиме доÑÑÑпна ÑолÑко одна меÑакоманда:
\unrestrict, она оÑклÑÑÐ°ÐµÑ Ð¾Ð³ÑаниÑеннÑй Ñежим. ÐлÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ ÑолÑко бÑквенно-ÑиÑÑовÑе ÑимволÑ.ÐÐ°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° в пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð²ÑгÑÑзок ÑекÑÑовÑÑ Ñайлов, ÑгенеÑиÑованнÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑÐ¸Ð»Ð¸Ñ pg_dump, pg_dumpall и pg_restore, однако Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¸ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей.
\s [#имÑ_Ñайла]ÐапиÑÑÐ²Ð°ÐµÑ Ð¸ÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ psql в Ñайл
имÑ_Ñайла. ÐÑлиимÑ_Ñайлане Ñказано, иÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ вÑводиÑÑÑ Ð² ÑÑандаÑÑнÑй вÑвод (Ñ Ð¸ÑполÑзованием поÑÑÑаниÑника, когда ÑмеÑÑно). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпен, еÑли psql бÑл ÑобÑан без поддеÑжки Readline.\set [#имÑ[знаÑение[ ... ] ] ]ÐадаÑÑ Ð´Ð»Ñ Ð¿ÐµÑеменной psql
имÑÑказанноезнаÑениеили, еÑли Ñказано неÑколÑко знаÑений, вÑе ÑÑи знаÑениÑ, ÑоединÑннÑе вмеÑÑе. ÐÑли пÑиÑÑÑÑÑвÑÐµÑ ÑолÑко один аÑгÑменÑ, знаÑением пеÑеменной ÑÑановиÑÑÑ Ð¿ÑÑÑÐ°Ñ ÑÑÑока. ÐÐ»Ñ ÑбÑоÑа пеÑеменной иÑполÑзÑйÑе командÑ\unset.\setбез аÑгÑменÑов вÑÐ²Ð¾Ð´Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð° и знаÑÐµÐ½Ð¸Ñ Ð²ÑÐµÑ psql пеÑеменнÑÑ , ÑÑÑановленнÑÑ Ð² наÑÑоÑÑее вÑемÑ.Ðмена пеÑеменнÑÑ Ð¼Ð¾Ð³ÑÑ ÑодеÑжаÑÑ Ð±ÑквÑ, ÑиÑÑÑ Ð¸ знаки подÑÑÑкиваниÑ. ÐодÑобнее Ñм. Ñаздел ÐеÑеменнÑе ниже. Ðмена пеÑеменнÑÑ ÑÑвÑÑвиÑелÑÐ½Ñ Ðº ÑегиÑÑÑÑ.
ÐекоÑоÑÑе пеÑеменнÑе оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¾ÑÑалÑнÑÑ , Ñем ÑÑо ÑпÑавлÑÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ psql или ÑÑÑанавливаÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, оÑÑÐ°Ð¶Ð°Ñ ÑоÑÑоÑние ÑоединениÑ. Ðни опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ, в Ñазделе ÐеÑеменнÑе.
ÐÑимеÑание
ÐÑа команда не Ð¸Ð¼ÐµÐµÑ Ð¾ÑноÑÐµÐ½Ð¸Ñ Ðº SQL-команде
SET.\setenv#имÑ[знаÑение]ÐадаÑÑ Ð´Ð»Ñ Ð¿ÐµÑеменной ÑÑедÑ
имÑзнаÑениеили, еÑлизнаÑениене задано, ÑдалÑÐµÑ Ð¿ÐµÑеменнÑÑ ÑÑедÑ. ÐÑимеÑ:testdb=>
\setenv PAGER lesstestdb=>\setenv LESS -imx4F\sf[+]#опиÑание_ÑÑнкÑииÐÑа команда Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð¸ вÑÐ²Ð¾Ð´Ð¸Ñ Ð¾Ð¿Ñеделение заданной ÑÑнкÑии или пÑоÑедÑÑÑ Ð² ÑоÑме командÑ
CREATE OR REPLACE FUNCTIONилиCREATE OR REPLACE PROCEDURE. ÐпÑеделение вÑдаÑÑÑÑ Ð² ÑекÑÑий канал вÑвода запÑоÑа, ÑÑÑановленнÑй\o.ÐÐ»Ñ ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑолÑко Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ð¸ аÑгÑменÑÑ, напÑимеÑ
foo(integer, text). Ð¢Ð¸Ð¿Ñ Ð°ÑгÑменÑов Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ, еÑли ÑÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÐµÐµ Ñем одна ÑÑнкÑÐ¸Ñ Ñ Ñем же именем.ÐÑи добавлении
+к команде ÑÑÑоки вÑвода нÑмеÑÑÑÑÑÑ, пеÑÐ²Ð°Ñ ÑÑÑока Ñела ÑÑнкÑии полÑÑÐ¸Ñ Ð½Ð¾Ð¼ÐµÑ 1.РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\sf, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.\sv[+]#имÑ_пÑедÑÑавлениÑÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ вÑÐ²Ð¾Ð´Ð¸Ñ Ð¾Ð¿Ñеделение Ñказанного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑоÑме командÑ
CREATE OR REPLACE VIEW. ÐпÑеделение вÑводиÑÑÑ Ð² ÑекÑÑий канал вÑвода запÑоÑов, ÑÑÑановленнÑй\o.ÐÑи добавлении
+к команде ÑÑÑоки вÑвода нÑмеÑÑÑÑÑÑ, наÑÐ¸Ð½Ð°Ñ Ñ 1.РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\sv, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек.\t#ÐклÑÑаеÑ/вÑклÑÑÐ°ÐµÑ Ð¾ÑобÑажение имÑн ÑÑолбÑов и ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом вÑбÑаннÑÑ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов. ÐÑа команда ÑквиваленÑна
\pset tuples_onlyи пÑедоÑÑавлена Ð´Ð»Ñ ÑдобÑÑва.\T#паÑамеÑÑÑ_ÑаблиÑÑУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð°ÑÑибÑÑÑ, коÑоÑÑе бÑдÑÑ Ð¿Ð¾Ð¼ÐµÑÐµÐ½Ñ Ð² Ñег
tableпÑи ÑоÑмаÑе вÑвода HTML. ÐÑа команда ÑквиваленÑна\pset tableattr.паÑамеÑÑÑ_ÑаблиÑÑ\timing [#on|off]С паÑамеÑÑом Ð´Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, в завиÑимоÑÑи Ð¾Ñ Ð½ÐµÐ³Ð¾, вклÑÑаеÑ/оÑклÑÑÐ°ÐµÑ Ð¾ÑобÑажение вÑемени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ SQL-опеÑаÑоÑа. Ðез паÑамеÑÑа она менÑÐµÑ ÑоÑÑоÑние оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° пÑоÑивоположное. ÐÑÐµÐ¼Ñ Ð²ÑводиÑÑÑ Ð² миллиÑекÑÐ½Ð´Ð°Ñ ; инÑеÑÐ²Ð°Ð»Ñ Ð±Ð¾Ð»ÑÑе 1 ÑекÑÐ½Ð´Ñ Ð²ÑводÑÑÑÑ Ð² ÑоÑмаÑе минÑÑÑ:ÑекÑндÑ, а пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи в вÑвод Ñакже добавлÑÑÑÑÑ ÑаÑÑ Ð¸ дни.
\unrestrict#restrict_keyÐÑклÑÑÐ°ÐµÑ Ð¾Ð³ÑаниÑеннÑй Ñежим (Ñежим, в коÑоÑом вÑе дÑÑгие меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸ÑованÑ) пÑи ÑÑловии, ÑÑо иÑполÑзÑемÑй клÑÑ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÐºÐ»ÑÑом, заданнÑм пÑи вклÑÑении огÑаниÑенного Ñежима командой
\restrict.ÐÐ°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° в пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð¸ÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð²ÑгÑÑзок ÑекÑÑовÑÑ Ñайлов, ÑгенеÑиÑованнÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑÐ¸Ð»Ð¸Ñ pg_dump, pg_dumpall и pg_restore, однако Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¸ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей.
\unset#имÑУдалÑÐµÑ psql пеÑеменнÑÑ
имÑ.ÐолÑÑинÑÑво пеÑеменнÑÑ , ÑпÑавлÑÑÑÐ¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸ÐµÐ¼ psql, нелÑÐ·Ñ ÑбÑоÑиÑÑ; команда
\unsetÐ´Ð»Ñ Ð½Ð¸Ñ Ð²Ð¾ÑпÑинимаеÑÑÑ ÐºÐ°Ðº ÑÑÑановка знаÑений по ÑмолÑаниÑ. См. Ñаздел ÐеÑеменнÑе ниже.\wили\writeимÑ_Ñайла\wили\write|команда#ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð±ÑÑÐµÑ ÑекÑÑего запÑоÑа в Ñайл
имÑ_Ñайлаили ÑеÑез канал в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñкикоманда. ÐÑли ÑÑÐ¾Ñ Ð±ÑÑÐµÑ Ð¿ÑÑÑ, бÑÐ´ÐµÑ Ð²Ñведен поÑледний вÑполненнÑй запÑоÑ.ÐÑли аÑгÑÐ¼ÐµÐ½Ñ Ð½Ð°ÑинаеÑÑÑ Ñ
|, веÑÑ Ð¾ÑÑаÑок ÑÑÑоки воÑпÑинимаеÑÑÑ ÐºÐ°ÐºÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, подлежаÑÐ°Ñ Ð²ÑполнениÑ, в коÑоÑой не пÑоизводиÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек. ÐÑо пÑодолжение ÑÑÑоки пÑоÑÑо пеÑедаÑÑÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñке в бÑквалÑном виде.\warn#ÑекÑÑ[ ... ]ÐÑа команда иденÑиÑна
\echoза иÑклÑÑением Ñого, ÑÑо ÐµÑ Ð²Ñвод вÑдаÑÑÑÑ Ð² поÑок вÑвода оÑибок psql, а не в поÑок ÑÑандаÑÑного вÑвода.\watch [ i[nterval]=#ÑекÑндÑ] [ c[ount]=колиÑеÑÑво_вÑполнений] [ÑекÑндÑ]ÐÑа команда вÑполнÑÐµÑ ÑекÑÑий запÑÐ¾Ñ Ð² бÑÑеÑе (как
\g) заданное колиÑеÑÑво Ñаз, еÑли не бÑÐ´ÐµÑ Ð¿ÑеÑвана или не Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ Ð¾Ñибка. ÐÑгÑÐ¼ÐµÐ½Ñ Ð·Ð°Ð´Ð°ÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑекÑнд Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð²ÑполнениÑми запÑоÑа (по ÑмолÑÐ°Ð½Ð¸Ñ 2). ÐÐ»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи задаваÑÑÑекÑндÑможно Ñ Ð¿ÑеÑикÑомinterval=или без него. РезÑлÑÑÐ°Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ запÑоÑа вÑводиÑÑÑ Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼, вклÑÑаÑÑим ÑÑÑокÑ\pset title(еÑли она задана), вÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка запÑоÑа и инÑеÑвал задеÑжки.ÐÑли бÑÑÐµÑ ÑекÑÑего запÑоÑа пÑÑÑ, бÑÐ´ÐµÑ Ð¿Ð¾Ð²ÑоÑно вÑполнен поÑледний пеÑеданнÑй запÑоÑ.
\x [#on|off|auto]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸Ð»Ð¸ пеÑеклÑÑÐ°ÐµÑ Ñежим ÑазвÑÑнÑÑого вÑвода ÑаблиÑÑ. ÐÑо ÑквиваленÑно
\pset expanded.\z[S] [#Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑ, пÑедÑÑавлений и поÑледоваÑелÑноÑÑей Ñ Ð¸Ñ Ð¿Ñавами доÑÑÑпа. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко ÑаблиÑÑ, пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑи, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.ÐÑо пÑевдоним длÑ
\dp(«показаÑÑ Ð¿Ñава доÑÑÑпа»).\! [#команда]Ðез аÑгÑменÑов запÑÑÐºÐ°ÐµÑ Ð¿Ð¾Ð´ÑинÑннÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑкÑ; когда ÑÑа оболоÑка завеÑÑаеÑÑÑ, psql пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ ÑабоÑÑ. ÐÑли добавлен аÑгÑменÑ, запÑÑÐºÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñки
команда.РоÑлиÑие Ð¾Ñ Ð±Ð¾Ð»ÑÑинÑÑва дÑÑÐ³Ð¸Ñ Ð¼ÐµÑакоманд веÑÑ Ð¾ÑÑаÑок ÑÑÑоки вÑегда воÑпÑинимаеÑÑÑ ÐºÐ°Ðº аÑгÑменÑÑ
\!, и в ÑÑÐ¸Ñ Ð°ÑгÑменÑÐ°Ñ Ð½Ðµ вÑполнÑеÑÑÑ Ð½Ð¸ подÑÑановка пеÑеменнÑÑ , ни ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек. ÐÑÐ¾Ñ ÑекÑÑ Ð¿ÑоÑÑо пеÑедаÑÑÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñке в бÑквалÑном виде.\? [#Ñема]ÐоказÑÐ²Ð°ÐµÑ ÑпÑавоÑнÑÑ Ð¸Ð½ÑоÑмаÑиÑ. ÐеобÑзаÑелÑнÑй паÑамеÑÑ
Ñема(по ÑмолÑаниÑcommands) вÑбиÑÐ°ÐµÑ Ð¾Ð¿Ð¸Ñание инÑеÑеÑÑÑÑей ÑаÑÑи psql:commandsопиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой;optionsопиÑÑÐ²Ð°ÐµÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, коÑоÑÑе можно пеÑедаÑÑ psql; аvariablesвÑдаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ пеÑеменнÑм конÑигÑÑаÑии psql.\;#ТоÑка Ñ Ð·Ð°Ð¿ÑÑой поÑле коÑой ÑеÑÑÑ Ð½Ðµ ÑвлÑеÑÑÑ Ð¼ÐµÑакомандой в Ñом ÑмÑÑле, ÑÑо пÑедÑдÑÑие; пÑи ÐµÑ Ð²Ð²Ð¾Ð´Ðµ в бÑÑÐµÑ Ð¿ÑоÑÑо добавлÑеÑÑÑ ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой без обÑабоÑки.
ÐбÑÑно psql пеÑедаÑÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑеÑвеÑÑ, как ÑолÑко вÑÑÑеÑÐ°ÐµÑ Ð·Ð°Ð²ÐµÑÑаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой, даже еÑли ÑекÑÑÐ°Ñ ÑÑÑока на ÑÑом не заканÑиваеÑÑÑ. Так, напÑимеÑ, пÑи вводе
select 1; select 2; select 3;
на ÑеÑÐ²ÐµÑ Ð¿Ð¾ оÑделÑноÑÑи бÑдÑÑ Ð¿ÐµÑÐµÐ´Ð°Ð½Ñ ÑÑи SQL-командÑ, и ÑезÑлÑÑÐ°Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð±ÑÐ´ÐµÑ Ð²Ñведен пеÑед пеÑÐµÑ Ð¾Ð´Ð¾Ð¼ к ÑледÑÑÑей. Ðднако еÑли ÑоÑка Ñ Ð·Ð°Ð¿ÑÑой вводиÑÑÑ ÐºÐ°Ðº
\;, команда не пеÑедаÑÑÑÑ Ð½Ð° обÑабоÑкÑ, Ñак ÑÑо ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð¾ и поÑле ÑÑÐ¸Ñ Ñимволов по ÑÑÑи обÑединÑÑÑÑÑ Ð¸ пеÑедаÑÑÑÑ ÑеÑвеÑÑ Ð² одном запÑоÑе. ÐоÑÑомÑ, напÑимеÑ, пÑи вÑполненииselect 1\; select 2\; select 3;
ÑеÑвеÑÑ Ð¿ÐµÑедаÑÑÑÑ ÑÑÐ°Ð·Ñ ÑÑи SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿Ñи доÑÑижении неÑкÑаниÑованной ÑоÑки Ñ Ð·Ð°Ð¿ÑÑой. СеÑÐ²ÐµÑ Ð²ÑполнÑÐµÑ Ñакой запÑÐ¾Ñ ÐºÐ°Ðº Ð¾Ð´Ð½Ñ ÑÑанзакÑиÑ, еÑли ÑолÑко в ÑÑÑÐ¾ÐºÑ Ð½Ðµ вклÑÑÐµÐ½Ñ ÑвнÑе командÑ
BEGIN/COMMIT, коÑоÑÑе ÑазделÑÑ ÐµÑ Ð½Ð° неÑколÑко ÑÑанзакÑий. (ÐодÑобнее о Ñом, как ÑеÑÐ²ÐµÑ Ð¾Ð±ÑабаÑÑÐ²Ð°ÐµÑ ÑÑÑоки, вклÑÑаÑÑие неÑколÑко команд, ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 54.2.2.1.)
Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка #
РазлиÑнÑе \d ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑинимаÑÑ Ð¿Ð°ÑамеÑÑ Ñаблон Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ (имÑн) обÑекÑов Ð´Ð»Ñ Ð¾ÑобÑажениÑ. РпÑоÑÑейÑем ÑлÑÑае Ñаблон â ÑÑо ÑоÑное Ð¸Ð¼Ñ Ð¾Ð±ÑекÑа. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð²Ð½ÑÑÑи Ñаблона обÑÑно пÑиводÑÑÑÑ Ðº Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ ÑегиÑÑÑÑ, как и Ð´Ð»Ñ Ð¸Ð¼Ñн SQL-обÑекÑов; к пÑимеÑÑ \dt FOO вÑÐ²Ð¾Ð´Ð¸Ñ ÑаблиÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ foo. Ðак и Ð´Ð»Ñ SQL имÑн, двойнÑе кавÑÑки вокÑÑг Ñаблона пÑедоÑвÑаÑаÑÑ Ð¿ÐµÑевод в нижний ÑегиÑÑÑ. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ñимвола двойной кавÑÑки в Ñаблон иÑполÑзÑÑÑÑÑ Ð´Ð²Ð° Ñимвола двойнÑÑ
кавÑÑек подÑÑд внÑÑÑи Ñаблона в двойнÑÑ
кавÑÑкаÑ
. ÐпÑÑÑ Ð¶Ðµ, ÑÑо ÑооÑвеÑÑÑвÑÐµÑ Ð¿Ñавилам Ð´Ð»Ñ SQL-иденÑиÑикаÑоÑов. ÐапÑÐ¸Ð¼ÐµÑ \dt "FOO""BAR" бÑÐ´ÐµÑ Ð²ÑводиÑÑ ÑаблиÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ FOO"BAR (но не foo"bar). РоÑлиÑие Ð¾Ñ Ð¾Ð±ÑÑнÑÑ
пÑавил Ð´Ð»Ñ SQL-имÑн, можно взÑÑÑ Ð² двойнÑе кавÑÑки ÑолÑко ÑаÑÑÑ Ñаблона, напÑÐ¸Ð¼ÐµÑ \dt FOO"FOO"BAR бÑÐ´ÐµÑ Ð²ÑводиÑÑ ÑаблиÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ fooFOObar.
ÐÑли Ñаблон вообÑе не Ñказан, ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \d вÑводÑÑ Ð²Ñе обÑекÑÑ, видимÑе Ñ ÑекÑÑим пÑÑÑм поиÑка ÑÑ
ем. ÐÑо ÑквиваленÑно ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ * в каÑеÑÑве Ñаблона. (ÐбÑÐµÐºÑ ÑÑиÑаеÑÑÑ Ð²Ð¸Ð´Ð¸Ð¼Ñм, еÑли ÑÑ
ема, к коÑоÑой он оÑноÑиÑÑÑ, наÑ
одиÑÑÑ Ð² пÑÑи поиÑка, и обÑÐµÐºÑ Ñ Ñаким же Ñипом и именем в пÑÑи поиÑка еÑÑ Ð½Ðµ вÑÑÑеÑалÑÑ. ÐÑо ÑквиваленÑно ÑÑвеÑждениÑ, ÑÑо на обÑÐµÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑÑÑлаÑÑÑÑ Ð¿Ð¾ имени, без Ñвного ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑÑ
емÑ.) ЧÑÐ¾Ð±Ñ ÑвидеÑÑ Ð²Ñе обÑекÑÑ Ð² базе даннÑÑ
, незавиÑимо Ð¾Ñ Ð²Ð¸Ð´Ð¸Ð¼Ð¾ÑÑи, иÑполÑзÑйÑе в каÑеÑÑве Ñаблона *.*.
ÐнÑÑÑи Ñаблона * обознаÑÐ°ÐµÑ Ð»Ñбое колиÑеÑÑво Ñимволов, вклÑÑÐ°Ñ Ð¾ÑÑÑÑÑÑвие Ñимволов. ? ÑооÑвеÑÑÑвÑÐµÑ Ð»ÑÐ±Ð¾Ð¼Ñ Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑимволÑ. (ÐÑо ÑооÑвеÑÑÑвÑÐµÑ Ñаблонам имÑн Ñайлов в Unix.) ÐапÑимеÑ, \dt int* оÑобÑÐ°Ð¶Ð°ÐµÑ Ð²Ñе ÑаблиÑÑ, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ð½Ð° int. Ðднако внÑÑÑи двойнÑÑ
кавÑÑек * и ? ÑеÑÑÑÑ ÑÐ²Ð¾Ñ ÑпеÑиалÑное знаÑение и ÑÑановÑÑÑÑ Ð¾Ð±ÑÑнÑми Ñимволами.
Шаблон оÑноÑениÑ, ÑодеÑжаÑий ÑоÑÐºÑ (.), инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº Ñаблон имени ÑÑ
емÑ, за коÑоÑÑм ÑледÑÐµÑ Ñаблон имени обÑекÑа. ÐапÑимеÑ, \dt foo*.*bar* оÑобÑÐ°Ð¶Ð°ÐµÑ Ð²Ñе ÑаблиÑÑ, имена коÑоÑÑÑ
вклÑÑаÑÑ bar, и ÑаÑположеннÑе в ÑÑ
емаÑ
, имена коÑоÑÑÑ
наÑинаÑÑÑÑ Ñ foo. ШаблонÑ, не ÑодеÑжаÑÐµÐ¼Ñ ÑоÑкÑ, могÑÑ ÑооÑвеÑÑÑвоваÑÑ ÑолÑко обÑекÑÑ ÑекÑÑей ÑÑ
емÑ. ÐпÑÑÑ Ð¶Ðµ, ÑоÑка внÑÑÑи двойнÑÑ
кавÑÑек ÑеÑÑÐµÑ ÑÐ²Ð¾Ñ ÑпеÑиалÑное знаÑение. Шаблон оÑноÑениÑ, ÑодеÑжаÑий 2 ÑоÑки (.), инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ ÐÐ, за коÑоÑÑм ÑледÑÑÑ Ñаблон имени ÑÑ
ÐµÐ¼Ñ Ð¸ Ñаблон имени обÑекÑа. ÐÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ÐРне бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº Ñаблон, в нÑм должно ÑказÑваÑÑÑÑ Ð¸Ð¼Ñ ÑекÑÑей подклÑÑÑнной базÑ; в пÑоÑивном ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ Ð¾Ñибка.
Шаблон ÑÑ
емÑ, ÑодеÑжаÑий ÑоÑÐºÑ (.), инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ ÐÐ, за коÑоÑÑм ÑледÑÐµÑ Ñаблон имени ÑÑ
емÑ. ÐапÑимеÑ, \dn mydb.*foo* оÑобÑÐ°Ð¶Ð°ÐµÑ Ð²Ñе ÑÑ
емÑ, имена коÑоÑÑÑ
вклÑÑаÑÑ foo. ÐÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ÐРне бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº Ñаблон, в нÑм должно ÑказÑваÑÑÑÑ Ð¸Ð¼Ñ ÑекÑÑей подклÑÑÑнной базÑ; в пÑоÑивном ÑлÑÑае Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ Ð¾Ñибка.
ÐпÑÑнÑе полÑзоваÑели могÑÑ Ð¸ÑполÑзоваÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑегÑлÑÑнÑÑ
вÑÑажений, Ñакие как клаÑÑÑ Ñимволов. ÐапÑÐ¸Ð¼ÐµÑ [0-9] ÑооÑвеÑÑÑвÑÐµÑ Ð»Ñбой ÑиÑÑе. ÐÑе ÑпеÑиалÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑегÑлÑÑнÑÑ
вÑÑажений ÑабоÑаÑÑ ÐºÐ°Ðº опиÑано в ÐодÑазделе 9.7.3, за иÑклÑÑением: . иÑполÑзÑеÑÑÑ Ð² каÑеÑÑве ÑазделиÑелÑ, как говоÑилоÑÑ Ð²ÑÑе; * ÑооÑвеÑÑÑвÑÐµÑ ÑегÑлÑÑÐ½Ð¾Ð¼Ñ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ .*; ? ÑооÑвеÑÑÑвÑÐµÑ ., а Ñакже Ñимвол $, коÑоÑÑй не Ð¸Ð¼ÐµÐµÑ ÑпеÑиалÑного знаÑениÑ. ÐÑи необÑ
одимоÑÑи ÑÑи ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑмÑлиÑоваÑÑ ÑказÑÐ²Ð°Ñ ? Ð´Ð»Ñ ÑмÑлÑÑии ., ( Ð´Ð»Ñ R+|), R*( Ð´Ð»Ñ R|). R?$ не ÑÑебÑеÑÑÑ, как Ñимвол ÑегÑлÑÑного вÑÑажениÑ, поÑÐ¾Ð¼Ñ ÑÑо Ñаблон должен ÑооÑвеÑÑÑвоваÑÑ Ð¸Ð¼ÐµÐ½Ð¸ Ñеликом, в оÑлиÑие Ð¾Ñ Ð¾Ð±ÑÑной инÑеÑпÑеÑаÑии ÑегÑлÑÑнÑÑ
вÑÑажений (дÑÑгими Ñловами, $ авÑомаÑиÑеÑки добавлÑеÑÑÑ Ð² Ñаблон). ÐÑполÑзÑйÑе * в наÑале и/или в конÑе, еÑли не Ñ
оÑиÑе, ÑÑÐ¾Ð±Ñ Ñаблон закÑеплÑлÑÑ. ÐбÑаÑиÑе внимание, ÑÑо внÑÑÑи двойнÑÑ
кавÑÑек, вÑе ÑпеÑиалÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑегÑлÑÑнÑÑ
вÑÑажений ÑеÑÑÑÑ ÑÐ²Ð¾Ñ ÑпеÑиалÑное знаÑение и ÑооÑвеÑÑÑвÑÑÑ Ñами Ñебе. Также, ÑпеÑиалÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑегÑлÑÑнÑÑ
вÑÑажений не дейÑÑвÑÑÑ Ð² ÑаблонаÑ
Ð´Ð»Ñ Ð¸Ð¼Ñн опеÑаÑоÑов (Ñ. е. в аÑгÑменÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \do).
РаÑÑиÑеннÑе возможноÑÑи
ÐеÑеменнÑе #
psql пÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи подÑÑановки пеÑеменнÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ñе Ñем, ÑÑо иÑполÑзÑÑÑÑÑ Ð² команднÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑÐºÐ°Ñ Unix. ÐеÑеменнÑе пÑедÑÑавлÑÑÑ Ñобой паÑÑ Ð¸Ð¼Ñ/знаÑение, где знаÑением Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑÐ±Ð°Ñ ÑÑÑока лÑбой длинÑ. ÐÐ¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ ÑоÑÑоÑÑÑ Ð¸Ð· бÑкв (вклÑÑÐ°Ñ Ð½ÐµÐ»Ð°ÑинÑкие бÑквÑ), ÑиÑÑ Ð¸ знаков подÑÑÑкиваниÑ.
ЧÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð¿ÐµÑеменнÑÑ, иÑполÑзÑеÑÑÑ Ð¼ÐµÑакоманда psql \set. ÐапÑимеÑ:
testdb=> \set foo bar пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ Ð¿ÐµÑеменной foo знаÑение bar. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð·Ð½Ð°Ñение пеÑеменной, нÑжно поÑÑавиÑÑ Ð´Ð²Ð¾ÐµÑоÑие пеÑед ÐµÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼, напÑимеÑ:
testdb=> \echo :foo
barÐÑо ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº в обÑÑнÑÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ , Ñак и в меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ ; подÑобноÑÑи в Ñазделе ÐнÑеÑполÑÑÐ¸Ñ SQL ниже.
ÐÑи вÑзове \set без вÑоÑого аÑгÑменÑа пеÑеменной пÑиÑваиваеÑÑÑ Ð¿ÑÑÑÐ°Ñ ÑÑÑока. ÐÐ»Ñ ÑбÑоÑа (Ñо еÑÑÑ ÑдалениÑ) пеÑеменной иÑполÑзÑйÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \unset. ЧÑÐ¾Ð±Ñ Ð¿Ð¾ÑмоÑÑеÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²ÑеÑ
пеÑеменнÑÑ
, вÑзовиÑе \set без аÑгÑменÑов.
ÐÑимеÑание
Ðа аÑгÑменÑÑ \set ÑаÑпÑоÑÑÑанÑÑÑÑÑ Ñе же пÑавила подÑÑановки, ÑÑо и Ð´Ð»Ñ Ð´ÑÑгиÑ
команд. Таким обÑазом можно ÑоздаваÑÑ Ð¸Ð½ÑеÑеÑнÑе ÑÑÑлки, напÑÐ¸Ð¼ÐµÑ \set :foo 'something', полÑÑÐ°Ñ Â«Ð¼Ñгкие ÑÑÑлки» в Perl или «пеÑеменнÑе пеÑеменнÑÑ
» в PHP. Ð ÑÐ¾Ð¶Ð°Ð»ÐµÐ½Ð¸Ñ (или к ÑÑаÑÑÑÑ?), Ñ ÑÑими конÑÑÑÑкÑиÑми нелÑÐ·Ñ ÑделаÑÑ Ð½Ð¸Ñего полезного. С дÑÑгой ÑÑоÑонÑ, \set bar :foo ÑвлÑеÑÑÑ Ð¿ÑекÑаÑнÑм ÑпоÑобом копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменной.
ÐекоÑоÑÑе пеÑеменнÑе обÑабаÑÑваÑÑÑÑ Ð² psql оÑобÑм обÑазом. Ðни пÑедÑÑавлÑÑÑ Ñобой опÑеделÑннÑе паÑамеÑÑÑ, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿ÑÑÑм пÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ знаÑениÑ, а в некоÑоÑÑÑ Ð¿ÐµÑеменнÑÑ ÑодеÑжиÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ñемое ÑоÑÑоÑние psql. Ðо ÑоглаÑениÑ, имена ÑпеÑиалÑнÑÑ Ð¿ÐµÑеменнÑÑ ÑоÑÑоÑÑ ÑолÑко из заглавнÑÑ ASCII-бÑкв (и, возможно, ÑиÑÑ Ð¸ знаков подÑÑÑкиваниÑ). ÐÐ»Ñ Ð¼Ð°ÐºÑималÑной ÑовмеÑÑимоÑÑи в бÑдÑÑем ÑÑаÑайÑеÑÑ Ð½Ðµ иÑполÑзоваÑÑ Ñакие имена Ð´Ð»Ñ ÑобÑÑвеннÑÑ Ð¿ÐµÑеменнÑÑ .
ÐеÑеменнÑе, ÑпÑавлÑÑÑие поведением psql, обÑÑно нелÑÐ·Ñ ÑбÑоÑиÑÑ Ð¸Ð»Ð¸ задаÑÑ Ð´Ð»Ñ Ð½Ð¸Ñ
недопÑÑÑимÑе знаÑениÑ. Ðоманда \unset Ð´Ð»Ñ Ð½Ð¸Ñ
допÑÑкаеÑÑÑ, но воÑпÑинимаеÑÑÑ ÐºÐ°Ðº ÑÑÑановка знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. Ðоманда \set без вÑоÑого аÑгÑменÑа воÑпÑинимаеÑÑÑ ÐºÐ°Ðº пÑиÑваивание пеÑеменной знаÑÐµÐ½Ð¸Ñ on, Ð´Ð»Ñ ÑпÑавлÑÑÑиÑ
пеÑеменнÑÑ
, пÑинимаÑÑиÑ
ÑÑо знаÑение, и не пÑинимаеÑÑÑ Ð´Ð»Ñ Ð´ÑÑгиÑ
. Также ÑпÑавлÑÑÑие пеÑеменнÑе, пÑинимаÑÑие знаÑÐµÐ½Ð¸Ñ on и off, пÑимÑÑ Ð¸ дÑÑгие обÑепÑинÑÑÑе напиÑÐ°Ð½Ð¸Ñ Ð»Ð¾Ð³Ð¸ÑеÑкиÑ
знаÑений, напÑÐ¸Ð¼ÐµÑ true и false.
СпеÑиалÑнÑе пеÑеменнÑе:
-
AUTOCOMMIT# ÐÑи знаÑении
on(по ÑмолÑаниÑ) поÑле каждой ÑÑпеÑно вÑполненной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²ÑполнÑеÑÑÑ ÑикÑаÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹. ЧÑÐ¾Ð±Ñ Ð¾ÑложиÑÑ ÑикÑаÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в ÑÑом Ñежиме, нÑжно вÑполниÑÑ SQL-командÑBEGINилиSTART TRANSACTION. ÐÑи знаÑенииoffили еÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ опÑеделена, ÑикÑаÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ не пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока Ñвно не вÑполнена командаCOMMITилиEND. ÐÑи знаÑенииoffнеÑвно вÑполнÑеÑÑÑBEGINнепоÑÑедÑÑвенно пеÑед лÑбой командой, за иÑклÑÑением ÑлÑÑаев когда: команда Ñже в ÑÑанзакÑионном блоке; пеÑед Ñамой командойBEGINили дÑÑгой командой ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми; пеÑед командой, коÑоÑÐ°Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð²Ð½ÑÑÑи ÑÑанзакÑионного блока (напÑимеÑVACUUM).ÐÑимеÑание
ÐÑли Ñежим
autocommitоÑклÑÑÑн, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ Ñвно оÑкаÑÑваÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² неÑÑпеÑнÑÑ ÑÑанзакÑиÑÑ , вÑполнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑABORTилиROLLBACK. Также имейÑе в видÑ, ÑÑо пÑи вÑÑ Ð¾Ð´Ðµ из ÑеанÑа без ÑикÑаÑии изменений неÑÐ¾Ñ ÑанÑннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ.ÐÑимеÑание
ÐклÑÑÑннÑй Ñежим
autocommitÑвлÑеÑÑÑ ÑÑадиÑионнÑм Ð´Ð»Ñ Postgres Pro, а вÑклÑÑеннÑй Ñежим ближе к ÑпеÑиÑикаÑии SQL. ÐÑли Ð²Ñ Ð¿ÑедпоÑиÑаеÑе оÑклÑÑиÑÑ Ñежимautocommit, ÑÑо можно ÑделаÑÑ Ð² обÑеÑиÑÑемном Ñайлеpsqlrcили в пеÑÑоналÑном Ñайле~/.psqlrc.COMP_KEYWORD_CASE#ÐпÑеделÑеÑ, какой ÑегиÑÑÑ Ð±Ñкв бÑÐ´ÐµÑ Ð¸ÑполÑзован пÑи авÑомаÑиÑеÑком завеÑÑении клÑÑевÑÑ Ñлов SQL. ÐÑли ÑÑÑановлено в
lowerилиupper, бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð½Ð¸Ð¶Ð½Ð¸Ð¹ или веÑÑ Ð½Ð¸Ð¹ ÑегиÑÑÑ ÑооÑвеÑÑÑвенно. ÐÑли ÑÑÑановлено вpreserve-lowerилиpreserve-upper(по ÑмолÑаниÑ), Ñо завеÑÑаемое Ñлово бÑÐ´ÐµÑ Ð² Ñом же ÑегиÑÑÑе, ÑÑо и Ñже введÑнное наÑало Ñлова, но поÑледÑÑÑие Ñлова, завеÑÑаемÑе полноÑÑÑÑ, бÑдÑÑ Ð² нижнем или веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе ÑооÑвеÑÑÑвенно.DBNAME#ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑой Ð²Ñ ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑенÑ. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.
ECHO#Со знаÑением
allвÑе непÑÑÑÑе Ð²Ñ Ð¾Ð´ÑÑие ÑÑÑоки вÑдаÑÑÑÑ Ð² ÑÑандаÑÑнÑй вÑвод по меÑе Ð¸Ñ ÑÑениÑ. (ÐÑо не оÑноÑиÑÑÑ Ðº ÑÑÑокам, ÑÑиÑÑваемÑм инÑеÑакÑивно.) ЧÑÐ¾Ð±Ñ Ð²ÑбÑаÑÑ Ñакое поведение пÑи запÑÑке пÑогÑаммÑ, добавÑÑе клÑÑ-a. Со знаÑениемqueriespsql вÑдаÑÑ ÐºÐ°Ð¶Ð´Ñй запÑоÑ, оÑпÑавлÑемÑй ÑеÑвеÑÑ, в ÑÑандаÑÑнÑй вÑвод. ÐÑÐ¾Ð¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ»ÑÑ-e. Со знаÑениемerrorsв ÑÑандаÑÑнÑй поÑок оÑибок вÑдаÑÑÑÑ ÑолÑко запÑоÑÑ, вÑзвавÑие оÑибки. ÐÐ¼Ñ ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ»ÑÑ-b. Со знаÑениемnone(по ÑмолÑаниÑ), никакие запÑоÑÑ Ð½Ðµ вÑводÑÑÑÑ.ECHO_HIDDEN#ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение
onи меÑакоманда обÑаÑаеÑÑÑ Ðº базе даннÑÑ , ÑнаÑала вÑводиÑÑÑ ÑекÑÑ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°Ñего запÑоÑа. ÐÑо Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¸Ð·ÑÑаÑÑ Ð²Ð½ÑÑÑеннее ÑÑÑÑойÑÑво Postgres Pro и ÑеализовÑваÑÑ Ð¿Ð¾Ñ Ð¾Ð¶ÑÑ ÑÑнкÑионалÑноÑÑÑ Ð² ÑÐ²Ð¾Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ð°Ñ . (ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ñакое поведение пÑи запÑÑке пÑогÑаммÑ, воÑполÑзÑйÑеÑÑ ÐºÐ»ÑÑом-E.) ÐÑли Ð²Ñ Ð·Ð°Ð´Ð°Ð´Ð¸Ñе Ð´Ð»Ñ ÑÑой пеÑеменной знаÑениеnoexec, запÑоÑÑ Ð±ÑдÑÑ Ð¿ÑоÑÑо показÑваÑÑÑÑ, но не бÑдÑÑ Ð¾ÑпÑавлÑÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ð¸ вÑполнÑÑÑÑÑ. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ âoff.ENCODING#ТекÑÑÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка Ñимволов на ÑÑоÑоне клиенÑа. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ) и пÑи Ñмене кодиÑовки командой
\encoding, но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.ERROR#trueв ÑлÑÑае оÑибки поÑледнего SQL-запÑоÑа,false, еÑли он бÑл вÑполнен ÑÑпеÑно. См. ÑакжеSQLSTATE.FETCH_COUNT#ÐÑли знаÑение ÑÑой пеÑеменной â Ñелое ÑиÑло болÑÑе нÑлÑ, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑов
SELECTизвлекаÑÑÑÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ оÑобÑажаÑÑÑÑ Ð³ÑÑппами Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм колиÑеÑÑвом ÑÑÑок, в оÑлиÑие Ð¾Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ, когда пеÑед оÑобÑажением ÑезÑлÑÑиÑÑÑÑий Ð½Ð°Ð±Ð¾Ñ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÐµÑÑÑ Ñеликом. ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð³ÑаниÑеннÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð°Ð¼ÑÑи незавиÑимо Ð¾Ñ ÑазмеÑа вÑбоÑки. ÐÑи вклÑÑении ÑÑой ÑÑнкÑионалÑноÑÑи обÑÑно иÑполÑзÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¾Ñ 100 до 1000. ÐмейÑе в видÑ, ÑÑо запÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð¾Ñибкой поÑле оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐºÐ¾ÑоÑого колиÑеÑÑва ÑÑÑок.ÐодÑказка
ХоÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð»Ñбой ÑоÑÐ¼Ð°Ñ Ð²Ñвода, ÑоÑÐ¼Ð°Ñ Ð¿Ð¾ ÑмолÑаниÑ
alignedкак пÑавило вÑглÑÐ´Ð¸Ñ Ñ Ñже, поÑÐ¾Ð¼Ñ ÑÑо ÐºÐ°Ð¶Ð´Ð°Ñ Ð³ÑÑппа поFETCH_COUNTÑÑÑок ÑоÑмаÑиÑÑеÑÑÑ Ð¾ÑделÑно, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к Ñазной ÑиÑине ÑÑолбÑов в ÑазнÑÑ Ð³ÑÑÐ¿Ð¿Ð°Ñ . ÐÑÑалÑнÑе ÑоÑмаÑÑ Ð²Ñвода ÑабоÑаÑÑ Ð»ÑÑÑе.HIDE_TABLEAM#ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñавна
true, инÑоÑмаÑÐ¸Ñ Ð¾ меÑÐ¾Ð´Ð°Ñ Ð´Ð¾ÑÑÑпа ÑаблиÑÑ Ð½Ðµ вÑводиÑÑÑ. ÐÑо полезно пÑежде вÑего Ð´Ð»Ñ ÑегÑеÑÑионнÑÑ ÑеÑÑов.HIDE_TOAST_COMPRESSION#ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñавна
true, инÑоÑмаÑÐ¸Ñ Ð¾ меÑÐ¾Ð´Ð°Ñ ÑжаÑÐ¸Ñ ÑÑолбÑов не вÑводиÑÑÑ. ÐÑо полезно пÑежде вÑего Ð´Ð»Ñ ÑегÑеÑÑионнÑÑ ÑеÑÑов.HISTCONTROL#ÐÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение
ignorespace, ÑÑÑоки, наÑинаÑÑиеÑÑ Ñ Ð¿Ñобела, не ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² иÑÑоÑии. ÐÑли она Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеignoredups, в иÑÑоÑÐ¸Ñ Ð½Ðµ добавлÑÑÑÑÑ ÑÑÑоки, коÑоÑÑе в ней Ñже еÑÑÑ. ÐнаÑениеignorebothобÑединÑÐµÑ ÑÑи два ваÑианÑа. Со знаÑениемnone(по ÑмолÑаниÑ) в иÑÑоÑии ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð²Ñе ÑÑÑоки, ÑÑиÑÑваемÑе в инÑеÑакÑивном Ñежиме.ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HISTFILE#ÐÐ¼Ñ Ñайла, в коÑоÑом бÑÐ´ÐµÑ ÑÐ¾Ñ ÑанÑÑÑÑÑ ÑпиÑок иÑÑоÑии команд. ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ опÑеделена, Ð¸Ð¼Ñ Ñайла беÑÑÑÑÑ Ð¸Ð· пеÑеменной окÑÑжениÑ
PSQL_HISTORY. ÐÑли и она не задана, иÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ â~/.psql_historyили%APPDATA%\postgresql\psql_historyв Windows. ÐапÑимеÑ, еÑли ÑÑÑановиÑÑ:\set HISTFILE ~/.psql_history-:DBNAME
в
~/.psqlrc, psql бÑÐ´ÐµÑ Ð²ÐµÑÑи оÑделÑнÑй Ñайл иÑÑоÑии Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HISTSIZE#ÐакÑималÑное ÑиÑло команд, коÑоÑÑе бÑдÑÑ ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² иÑÑоÑии команд (по ÑмолÑÐ°Ð½Ð¸Ñ 500). ÐÑли задано оÑÑиÑаÑелÑное знаÑение, огÑаниÑение не накладÑваеÑÑÑ.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HOST#ÐÐ¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, где ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑÐ¾Ð¼Ñ Ð²Ñ ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑенÑ. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.
IGNOREEOF#ÐÑли Ñавно 1 или менÑÑе, Ñимвол конÑа Ñайла (EOF, обÑÑно пеÑедаÑÑÑÑ ÑоÑеÑанием ÐºÐ»Ð°Ð²Ð¸Ñ Control+D) в инÑеÑакÑивном ÑеанÑе psql завеÑÑÐ¸Ñ ÑабоÑÑ Ð¿ÑиложениÑ. ÐÑли знаÑение болÑÑе 1, оно опÑеделÑеÑ, ÑколÑко поÑледоваÑелÑнÑÑ Ñимволов EOF нÑжно ввеÑÑи, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð¸Ð½ÑеÑакÑивнÑй ÑеанÑ. ÐÑли знаÑение пеÑеменной не ÑвлÑеÑÑÑ ÑиÑловÑм, оно воÑпÑинимаеÑÑÑ ÐºÐ°Ðº 10. Ðо ÑмолÑÐ°Ð½Ð¸Ñ â 0.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
LASTOID#СодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ñение поÑледнего OID, полÑÑенного командой
INSERTили\lo_import. ÐоÑÑекÑное знаÑение пеÑеменной гаÑанÑиÑÑеÑÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока не бÑÐ´ÐµÑ Ð¾ÑобÑажÑн ÑезÑлÑÑÐ°Ñ ÑледÑÑÑей SQL-командÑ. СеÑвеÑÑ Postgres Pro Ñ Ð²ÐµÑÑии 12 не поддеÑживаÑÑ ÑиÑÑемнÑе ÑÑолбÑÑ OID, поÑÑÐ¾Ð¼Ñ Ð¿Ñи обÑаÑении к Ñаким ÑеÑвеÑам поÑлеINSERTвÑегда бÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ Ð½Ñлевой LASTOID.LAST_ERROR_MESSAGELAST_ERROR_SQLSTATE#ÐÑновное ÑообÑение об оÑибке и ÑвÑзаннÑй код SQLSTATE Ð´Ð»Ñ Ð¿Ð¾Ñледнего неÑдавÑегоÑÑ Ð·Ð°Ð¿ÑоÑа в ÑекÑÑем ÑеанÑе psql либо пÑÑÑÐ°Ñ ÑÑÑока и
00000, еÑли в ÑекÑÑем ÑеанÑе не пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð¸ оÑибки.-
ON_ERROR_ROLLBACK# ÐÑи знаÑении
on, еÑли команда в блоке ÑÑанзакÑии вÑдаÑÑ Ð¾ÑибкÑ, оÑибка игноÑиÑÑеÑÑÑ Ð¸ ÑÑанзакÑÐ¸Ñ Ð¿ÑодолжаеÑÑÑ. Со знаÑениемinteractiveÑакие оÑибки игноÑиÑÑÑÑÑÑ ÑолÑко в инÑеÑакÑивнÑÑ ÑеанÑÐ°Ñ , но не в ÑкÑипÑÐ°Ñ . Со знаÑениемoff(по ÑмолÑаниÑ) команда в блоке ÑÑанзакÑии, вÑдаÑÑÐ°Ñ Ð¾ÑибкÑ, пÑеÑÑÐ²Ð°ÐµÑ Ð²ÑÑ ÑÑанзакÑиÑ. ÐÐ»Ñ ÑеализаÑии Ñежима оÑкаÑа ÑÑанзакÑии за Ð²Ð°Ñ Ð½ÐµÑвно вÑполнÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°SAVEPOINTнепоÑÑедÑÑвенно пеÑед каждой командой в блоке ÑÑанзакÑии, а в ÑлÑÑае оÑибки ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¾ÑÐºÐ°Ñ Ðº ÑÑой ÑоÑке ÑÐ¾Ñ ÑанениÑ.ON_ERROR_STOP#Ðо ÑмолÑаниÑ, поÑле Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¾Ñибки обÑабоÑка команд пÑодолжаеÑÑÑ. ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑÑановлена в знаÑение
on, обÑабоÑка команд бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ пÑекÑаÑена. РинÑеÑакÑивном Ñежиме psql веÑнÑÑÑÑ Ð² команднÑÑ ÑÑÑокÑ; инаÑе psql пÑекÑаÑÐ¸Ñ ÑабоÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ возвÑаÑа 3, ÑÑÐ¾Ð±Ñ Ð¾ÑлиÑиÑÑ ÑÑÐ¾Ñ ÑлÑÑай Ð¾Ñ ÐºÑиÑиÑеÑÐºÐ¸Ñ Ð¾Ñибок, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¸ÑполÑзÑеÑÑÑ ÐºÐ¾Ð´ возвÑаÑа 1. РлÑбом ÑлÑÑае вÑполнение вÑÐµÑ Ð·Ð°Ð¿ÑÑеннÑÑ ÑкÑипÑов (вÑÑокоÑÑовневÑй ÑкÑÐ¸Ð¿Ñ Ð¸ лÑбÑе дÑÑгие, коÑоÑÑе он мог запÑÑÑиÑÑ) бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ пÑекÑаÑено. ÐÑли вÑÑокоÑÑÐ¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ ÑÑÑока ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÑколÑко SQL-команд, вÑполнение завеÑÑиÑÑÑ Ð½Ð° ÑекÑÑей команде.PORT#СодеÑÐ¶Ð¸Ñ Ð¿Ð¾ÑÑ ÑеÑвеÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑÐ¾Ð¼Ñ Ð²Ñ ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑенÑ. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.
PROMPT1PROMPT2PROMPT3#УказÑваÑÑ, как Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑглÑдеÑÑ Ð¿ÑиглаÑÐµÐ½Ð¸Ñ psql. См. Ñаздел ÐаÑÑÑойка пÑиглаÑений ниже.
QUIET#УÑÑановка знаÑениÑ
onÑквиваленÑа паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки-q. ÐÑо, веÑоÑÑно, не ÑлиÑком полезно в инÑеÑакÑивном Ñежиме.ROW_COUNT#ЧиÑло ÑÑÑок, возвÑаÑÑннÑÑ Ð¸Ð»Ð¸ обÑабоÑаннÑÑ Ð¿Ð¾Ñледним SQL-запÑоÑом, либо 0, еÑли запÑÐ¾Ñ Ð·Ð°Ð²ÐµÑÑилÑÑ Ð½ÐµÑдаÑно или не возвÑаÑил колиÑеÑÑво ÑÑÑок.
SERVER_VERSION_NAMESERVER_VERSION_NUM#ÐÐ¾Ð¼ÐµÑ Ð²ÐµÑÑии ÑеÑвеÑа в виде ÑÑÑоки, напÑимеÑ
9.6.2,10.1или11beta1, и в ÑиÑловом виде, напÑимеÑ,90602или100001. Ðни ÑÑÑанавливаÑÑÑÑ Ð¿Ñи каждом подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи запÑÑке пÑогÑаммÑ), но Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.SHELL_ERROR#true, еÑли поÑледнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° оболоÑки завеÑÑилаÑÑ Ð¾Ñибкой,falseâ еÑли она бÑла вÑполнена ÑÑпеÑно. УÑÑанавливаеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ оболоÑки, вÑзÑваемÑÑ Ð¼ÐµÑакомандами\!,\g,\o,\wи\copy, а Ñакже командами в обÑаÑнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ (`). ÐбÑаÑиÑе внимание, ÑÑо длÑ\oÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑеÑÑÑ, когда канал вÑвода закÑÑваеÑÑÑ ÑледÑÑÑей командой\o. См. ÑакжеSHELL_EXIT_CODE.SHELL_EXIT_CODE#Ðод завеÑÑениÑ, возвÑаÑаемÑй поÑледней командой оболоÑки. 0â127 пÑедÑÑавлÑÑÑ Ñобой ÐºÐ¾Ð´Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¿ÑогÑаммÑ, 128â255 ÑказÑваÑÑ Ð½Ð° завеÑÑение ÑабоÑÑ Ð¿Ð¾ ÑигналÑ, -1 ÑказÑваеÑ, ÑÑо невозможно запÑÑÑиÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸Ð»Ð¸ полÑÑиÑÑ ÐºÐ¾Ð´ завеÑÑениÑ. УÑÑанавливаеÑÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ оболоÑки, вÑзÑваемÑÑ Ð¼ÐµÑакомандами
\!,\g,\o,\wи\copy, а Ñакже командами в обÑаÑнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ (`). ÐбÑаÑиÑе внимание, ÑÑо длÑ\oÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÑеÑÑÑ, когда канал вÑвода закÑÑваеÑÑÑ ÑледÑÑÑей командой\o. См. ÑакжеSHELL_ERROR.SHOW_ALL_RESULTS#Ðогда ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение
off(вÑкл.), вÑводÑÑÑÑ Ð½Ðµ вÑе ÑезÑлÑÑаÑÑ Ð¾Ð±ÑединÑнного (Ñ Ð¸ÑполÑзованием\;) запÑоÑа, а ÑолÑко поÑледний. ÐÑо поведение Ñеализовано Ð´Ð»Ñ ÑовмеÑÑимоÑÑи Ñо ÑÑаÑÑми веÑÑиÑми psql. Ðо ÑмолÑаниÑon(вкл.).SHOW_CONTEXT#ÐÑой пеÑеменной можно пÑиÑвоиÑÑ Ð·Ð½Ð°ÑениÑ
never(никогда),errors(оÑибки) илиalways(вÑегда), опÑеделÑÑÑие, когда в ÑообÑениÑÑ Ñ ÑеÑвеÑа бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ð¾Ð»ÑÐÐÐТÐÐСТ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑбÑан ваÑианÑerrors(коÑоÑÑй ознаÑаеÑ, ÑÑо конÑекÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð² ÑообÑениÑÑ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ , но не в пÑедÑпÑеждениÑÑ Ð¸ ÑведомлениÑÑ ). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑеÑ, когда ÑÑÑановлен ÑÑовенÑVERBOSITYterseилиsqlstate. (Ðогда вам поÑÑебÑеÑÑÑ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑолÑко ÑÑо вÑданной оÑибки, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° команда\errverbose.)SINGLELINE#УÑÑановка знаÑениÑ
onÑквиваленÑна паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки-S.SINGLESTEP#ÐÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑквиваленÑна паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки
-s.SQLSTATE#Ðод оÑибки (Ñм. ÐÑиложение A), ÑвÑзанной Ñ Ð½ÐµÑдаÑнÑм вÑполнением поÑледнего SQL-запÑоÑа, либо
00000в ÑлÑÑае его ÑÑпеÑного завеÑÑениÑ.USER#СодеÑÐ¶Ð¸Ñ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÑй ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.
VERBOSITY#ÐÑой пеÑеменной можно пÑиÑвоиÑÑ Ð·Ð½Ð°ÑениÑ
default,verbose,terseилиsqlstateÐ´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑÐ¾Ð²Ð½Ñ Ð´ÐµÑализаÑии в ÑообÑениÑÑ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ . (См. Ñакже командÑ\errverbose, полезнÑÑ, когда ÑÑебÑеÑÑÑ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑолÑко ÑÑо вÑданной оÑибки.)VERSIONVERSION_NAMEVERSION_NUM#ÐÑи пеÑеменнÑе ÑÑÑанавливаÑÑÑÑ Ð¿Ñи запÑÑке пÑогÑÐ°Ð¼Ð¼Ñ Ð¸ оÑÑажаÑÑ Ð²ÐµÑÑÐ¸Ñ psql ÑооÑвеÑÑÑвенно в виде ÑазвÑÑнÑÑой ÑÑÑоки, кÑаÑкой ÑÑÑоки (напÑимеÑ,
9.6.2,10.1или11beta1) и ÑиÑла (напÑимеÑ,90602или100001). ÐÑ Ð¼Ð¾Ð¶Ð½Ð¾ измениÑÑ Ð¸Ð»Ð¸ ÑбÑоÑиÑÑ.
ÐнÑеÑполÑÑÐ¸Ñ SQL #
ÐлÑÑевой оÑобенноÑÑÑÑ Ð¿ÐµÑеменнÑÑ
psql ÑвлÑеÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¿Ð¾Ð´ÑÑавлÑÑÑ («инÑеÑполиÑоваÑÑ») иÑ
в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL, Ñак же как и в аÑгÑменÑÑ Ð¼ÐµÑакоманд. ÐÑоме Ñого, psql пÑедоÑÑавлÑÐµÑ ÑÑедÑÑва Ð´Ð»Ñ ÐºÐ¾ÑÑекÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ð²ÑÑек Ð´Ð»Ñ Ð·Ð½Ð°Ñений пеÑеменнÑÑ
, коÑоÑÑе иÑполÑзÑÑÑÑÑ ÐºÐ°Ðº лиÑеÑÐ°Ð»Ñ Ð¸Ð»Ð¸ иденÑиÑикаÑоÑÑ SQL. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð´ÑÑавиÑÑ Ð·Ð½Ð°Ñение без кавÑÑек, нÑжно добавиÑÑ Ð¿ÐµÑед именем пеÑеменной двоеÑоÑие (:). ÐапÑимеÑ:
testdb=>\set foo 'my_table'testdb=>SELECT * FROM :foo;
бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑаÑиваÑÑ ÑаблиÑÑ my_table. ÐбÑаÑиÑе внимание, ÑÑо ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°ÑнÑм: знаÑение пеÑеменной копиÑÑеÑÑÑ Ð±ÑквалÑно, поÑÑÐ¾Ð¼Ñ Ð¾Ð½Ð¾ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð½ÐµÐ¿Ð°ÑнÑе кавÑÑки или даже меÑакомандÑ. ÐÑи пÑименении необÑ
одимо ÑбедиÑÑÑÑ, ÑÑо ÑÑо Ð¸Ð¼ÐµÐµÑ ÑмÑÑл.
Ðогда знаÑение бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве SQL лиÑеÑала или иденÑиÑикаÑоÑа, безопаÑнее заклÑÑиÑÑ ÐµÐ³Ð¾ в кавÑÑки. ÐÑли знаÑение пеÑеменной иÑполÑзÑеÑÑÑ ÐºÐ°Ðº SQL лиÑеÑал, Ñо поÑле двоеÑоÑÐ¸Ñ Ð½Ñжно напиÑаÑÑ Ð¸Ð¼Ñ Ð¿ÐµÑеменной в одинаÑнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ . ÐÑли знаÑение пеÑеменной иÑполÑзÑеÑÑÑ ÐºÐ°Ðº SQL иденÑиÑикаÑоÑ, Ñо поÑле двоеÑоÑÐ¸Ñ Ð½Ñжно напиÑаÑÑ Ð¸Ð¼Ñ Ð¿ÐµÑеменной в двойнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ . ÐÑи конÑÑÑÑкÑии коÑÑекÑно ÑабоÑаÑÑ Ñ ÐºÐ°Ð²ÑÑками и дÑÑгими ÑпеÑиалÑнÑми Ñимволами, коÑоÑÑе могÑÑ ÑодеÑжаÑÑÑÑ Ð² знаÑении пеÑеменной. ÐÑедÑдÑÑий пÑÐ¸Ð¼ÐµÑ Ð±Ð¾Ð»ÐµÐµ безопаÑно вÑглÑÐ´Ð¸Ñ Ñак:
testdb=>\set foo 'my_table'testdb=>SELECT * FROM :"foo";
ÐодÑÑановка пеÑеменнÑÑ
не бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ, еÑли SQL лиÑеÑÐ°Ð»Ñ Ð¸Ð»Ð¸ иденÑиÑикаÑоÑÑ Ð·Ð°ÐºÐ»ÑÑÐµÐ½Ñ Ð² кавÑÑки. ÐоÑÑÐ¾Ð¼Ñ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ ':foo' не пÑевÑаÑиÑÑÑ Ð²Ð¾ взÑÑое в кавÑÑки знаÑение пеÑеменной (и ÑÑо бÑло Ð±Ñ Ð½ÐµÐ±ÐµÐ·Ð¾Ð¿Ð°Ñно, еÑли Ð±Ñ ÑабоÑало, Ñак как обÑабоÑка кавÑÑек внÑÑÑи знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной бÑла Ð±Ñ Ð½ÐµÐºÐ¾ÑÑекÑной).
Ðдин из пÑимеÑов иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° â ÑÑо копиÑование ÑодеÑжимого Ñайла в ÑÑÐ¾Ð»Ð±ÐµÑ ÑаблиÑÑ. СнаÑала загÑÑзим ÑодеÑжимое Ñайла в пеÑеменнÑÑ, заÑем подÑÑавим знаÑение пеÑеменной как ÑÑÑÐ¾ÐºÑ Ð² кавÑÑÐºÐ°Ñ :
testdb=>\set content `cat my_file.txt`testdb=>INSERT INTO my_table VALUES (:'content');
(ÐÑмеÑим, ÑÑо ÑÑо пока не бÑÐ´ÐµÑ ÑабоÑаÑÑ, еÑли my_file.txt ÑодеÑÐ¶Ð¸Ñ Ð±Ð°Ð¹Ñ NUL. psql не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ NUL в знаÑениÑÑ
пеÑеменнÑÑ
.)
Так как двоеÑоÑие Ð¼Ð¾Ð¶ÐµÑ Ð»ÐµÐ³Ð°Ð»Ñно пÑиÑÑÑÑÑвоваÑÑ Ð² SQL-командаÑ
, попÑÑка подÑÑановки (напÑÐ¸Ð¼ÐµÑ Ð´Ð»Ñ :name, :'name' или :"name") не вÑполнÑеÑÑÑ, еÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ ÑÑÑановлена. РлÑбом ÑлÑÑае можно ÑкÑаниÑоваÑÑ Ð´Ð²Ð¾ÐµÑоÑие Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð±ÑаÑной коÑой ÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑиÑÑ Ð¿Ð¾Ð´ÑÑановкÑ.
СпеÑиалÑÐ½Ð°Ñ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¸Ñ :{? возвÑаÑÐ°ÐµÑ TRUE или FALSE в завиÑимоÑÑи Ð¾Ñ Ñого, ÑÑÑеÑÑвÑÐµÑ Ð»Ð¸ пеÑеменнаÑ, и Ñаким обÑазом вÑегда подменÑеÑÑÑ Ð·Ð½Ð°Ñением, еÑли ÑолÑко двоеÑоÑие не ÑкÑаниÑовано обÑаÑной коÑой ÑеÑÑой.имÑ}
ÐÑполÑзование двоеÑоÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÐµÑеменнÑÑ ÑвлÑеÑÑÑ ÑÑандаÑÑом SQL Ð´Ð»Ñ Ð²ÑÑÑаиваемÑÑ ÑзÑков запÑоÑов, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº ECPG. ÐÑполÑзование двоеÑоÑÐ¸Ñ Ð´Ð»Ñ ÑÑезов маÑÑивов и пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñипов ÑвлÑеÑÑÑ ÑаÑÑиÑениÑми Postgres Pro, ÑÑо иногда Ð¼Ð¾Ð¶ÐµÑ ÐºÐ¾Ð½ÑликÑоваÑÑ Ñо ÑÑандаÑÑнÑм иÑполÑзованием. ÐÑполÑзование двоеÑоÑÐ¸Ñ Ð¸ кавÑÑек Ð´Ð»Ñ ÑкÑаниÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной пÑи подÑÑановке в каÑеÑÑве SQL лиÑеÑала или иденÑиÑикаÑоÑа â ÑÑо ÑаÑÑиÑение psql.
ÐаÑÑÑойка пÑиглаÑений #
ÐÑиглаÑениÑ, вÑдаваемÑе psql, можно наÑÑÑоиÑÑ Ð¿Ð¾ ÑÐ²Ð¾ÐµÐ¼Ñ Ð²ÐºÑÑÑ. ТÑи пеÑеменнÑе PROMPT1, PROMPT2 и PROMPT3 ÑодеÑÐ¶Ð°Ñ ÑÑÑоки и ÑпеÑпоÑледоваÑелÑноÑÑи, задаÑÑие внеÑний вид пÑиглаÑениÑ. ÐÑиглаÑение 1 (PROMPT1) â ÑÑо обÑÑное пÑиглаÑение, коÑоÑое вÑдаÑÑÑÑ, когда psql Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð²Ð²Ð¾Ð´Ð° новой командÑ. ÐÑиглаÑение 2 (PROMPT2) вÑдаÑÑÑÑ, когда пÑи вводе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑÑÑоки, напÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÑÐ¾Ð¼Ñ ÑÑо команда не бÑла завеÑÑена ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой или не закÑÑÑÑ ÐºÐ°Ð²ÑÑки. ÐÑиглаÑение 3 (PROMPT3) вÑдаÑÑÑÑ Ð¿Ñи вÑполнении SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ COPY FROM STDIN, когда в ÑеÑминале нÑжно ввеÑÑи знаÑение новой ÑÑÑоки.
ÐнаÑÐµÐ½Ð¸Ñ ÑÑиÑ
пеÑеменнÑÑ
вÑводÑÑÑÑ Ð±ÑквалÑно, за иÑклÑÑением ÑлÑÑаев, когда в ниÑ
вÑÑÑеÑаеÑÑÑ Ð·Ð½Ð°Ðº пÑоÑенÑа (%). РзавиÑимоÑÑи Ð¾Ñ ÑледÑÑÑего Ñимвола бÑÐ´ÐµÑ Ð¿Ð¾Ð´ÑÑавлÑÑÑÑÑ Ð¾Ð¿ÑеделÑннÑй ÑекÑÑ. СÑÑеÑÑвÑÑÑ ÑледÑÑÑие подÑÑановки:
%M#Ðолное Ð¸Ð¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа (Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ домена) ÑеÑвеÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸
[local], еÑли подклÑÑение вÑполнено ÑеÑез Unix-ÑокеÑ, либо[local:, еÑли пÑи компилÑÑии бÑл изменÑн пÑÑÑ Unix-ÑокеÑа по ÑмолÑаниÑ./каÑалог/имÑ]%m#ÐÐ¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, где ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð· даннÑÑ , ÑÑеÑÑнное до пеÑвой ÑоÑки или
[local], еÑли подклÑÑение вÑполнено ÑеÑез Unix-ÑокеÑ.%>#ÐÐ¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа, коÑоÑÑй пÑоÑлÑÑÐ¸Ð²Ð°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
%n#ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ ÑекÑÑего ÑеанÑа. (ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ð² ÑеÑение ÑеанÑа в ÑезÑлÑÑаÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
SET SESSION AUTHORIZATION.)%/#ÐÐ¼Ñ ÑекÑÑей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
%~#ÐÐ¾Ñ Ð¾Ð¶Ðµ на
%/, но вÑÐ²Ð¾Ð´Ð¸Ñ ÑилÑдÑ~, еÑли ÑекÑÑÐ°Ñ Ð±Ð°Ð·Ð° даннÑÑ ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð±Ð°Ð·Ð¾Ð¹ даннÑÑ Ð¿Ð¾ ÑмолÑаниÑ.%##ÐÑли полÑзоваÑÐµÐ»Ñ ÑекÑÑего ÑеанÑа ÑвлÑеÑÑÑ ÑÑпеÑполÑзоваÑелем Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , Ñо вÑводиÑ
#, инаÑе>. (ÐÑо знаÑение Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ð² ÑеÑение ÑеанÑа в ÑезÑлÑÑаÑе вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑSET SESSION AUTHORIZATION.)%p#PID обÑлÑживаÑÑего пÑоÑеÑÑа Ð´Ð»Ñ ÑекÑÑего подклÑÑениÑ.
%R#РпÑиглаÑении 1 ÑÑо обÑÑно Ñимвол
=, но@, еÑли ÑÐµÐ°Ð½Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² неакÑивной веÑви блока ÑÑловиÑ, либо^в одноÑÑÑоÑном Ñежиме либо!, еÑли ÑÐµÐ°Ð½Ñ Ð½Ðµ подклÑÑÑн к базе даннÑÑ (ÑÑо возможно пÑи оÑибке\connect). РпÑиглаÑении 2%RзаменÑеÑÑÑ Ñимволом, показÑваÑÑим, поÑÐµÐ¼Ñ psql Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑй ввод:-, еÑли команда пÑоÑÑо еÑÑ Ð½Ðµ бÑла завеÑÑена, но*, еÑли не завеÑÑÑн комменÑаÑий/* ... */; апоÑÑÑоÑ, еÑли не завеÑÑена ÑÑÑока в апоÑÑÑоÑÐ°Ñ ; кавÑÑки, еÑли не завеÑÑÑн иденÑиÑикаÑÐ¾Ñ Ð² кавÑÑÐºÐ°Ñ ; знак доллаÑа, еÑли не завеÑÑена ÑÑÑока в доллаÑÐ°Ñ ; либо(, еÑли поÑле оÑкÑÑваÑÑей Ñкобки не Ñ Ð²Ð°ÑÐ°ÐµÑ Ð·Ð°ÐºÑÑваÑÑей. РпÑиглаÑении 3%Rне вÑдаÑÑ Ð½Ð¸Ñего.%x#СоÑÑоÑние ÑÑанзакÑии: пÑÑÑÐ°Ñ ÑÑÑока, еÑли не в ÑÑанзакÑионном блоке;
*, когда в ÑÑанзакÑионном блоке;!, когда в ÑÑанзакÑионном блоке, в коÑоÑом пÑоизоÑла оÑибка и?, когда ÑоÑÑоÑние ÑÑанзакÑии не опÑеделено (напÑимеÑ, Ð½ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ ).%l#ÐÐ¾Ð¼ÐµÑ ÑÑÑоки в ÑекÑÑем опеÑаÑоÑе, наÑÐ¸Ð½Ð°Ñ Ñ
1.%ÑиÑÑÑ#ÐодÑÑавлÑеÑÑÑ Ñимвол Ñ ÑказаннÑм воÑÑмеÑиÑнÑм кодом.
%:имÑ:#ÐнаÑение пеÑеменной psql
имÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÑÐ°Ð·Ð´ÐµÐ»Ñ ÐеÑеменнÑе вÑÑе.%`команда`#ÐодÑÑавлÑеÑÑÑ Ð²Ñвод
командÑ, как и в обÑÑной подÑÑановке Ñ Ð¾Ð±ÑаÑнÑми апоÑÑÑоÑами.%[...%]#ÐÑиглаÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑÑ ÑодеÑжаÑÑ ÑпÑавлÑÑÑие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑеÑминала, коÑоÑÑе, напÑимеÑ, изменÑÑÑ ÑвеÑ, Ñон и ÑÑÐ¸Ð»Ñ ÑекÑÑа пÑиглаÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ изменÑÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº окна ÑеÑминала. ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Readline ÑабоÑали пÑавилÑно, непеÑаÑаемÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ñжно ÑаÑположиÑÑ Ð¼ÐµÐ¶Ð´Ñ
%[и%], ÑÑÐ¾Ð±Ñ ÑделаÑÑ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ñми. Ðожно делаÑÑ Ð½ÐµÑколÑко ÑÐ°ÐºÐ¸Ñ Ð²ÐºÐ»ÑÑений в пÑиглаÑение. ÐапÑимеÑ:testdb=> \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '
вÑдаÑÑ Ð¶Ð¸Ñное (
1;), желÑое на ÑеÑном (33;40) пÑиглаÑение Ð´Ð»Ñ VT100 ÑовмеÑÑимÑÑ ÑвеÑнÑÑ ÑеÑминалов.%w#ÐÑобелÑ, даÑÑие ÑÐ¾Ñ Ð¶Ðµ оÑÑÑÑп, ÑÑо и в вÑданном поÑледним пÑиглаÑении
PROMPT1. ÐÑо знаÑение можно иÑполÑзоваÑÑ Ð²PROMPT2, ÑÑÐ¾Ð±Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑÑÑоÑнÑе опеÑаÑоÑÑ Ð±Ñли вÑÑÐ¾Ð²Ð½ÐµÐ½Ñ Ð¿Ð¾ пеÑвой ÑÑÑоке, но пÑи ÑÑом вÑоÑиÑного пÑиглаÑÐµÐ½Ð¸Ñ Ð½Ðµ бÑло видно.
ЧÑÐ¾Ð±Ñ Ð²ÑÑавиÑÑ Ð·Ð½Ð°Ðº пÑоÑенÑа, нÑжно напиÑаÑÑ %%. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ PROMPT1 и PROMPT2 иÑполÑзÑеÑÑÑ Ð·Ð½Ð°Ñение '%/%R%x%# ', а Ð´Ð»Ñ PROMPT3 â '>> '.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ tcsh.
РедакÑиÑование командной ÑÑÑоки #
ÐÑогÑамма psql иÑполÑзÑÐµÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ Readline или libedit, еÑли она доÑÑÑпна, Ð´Ð»Ñ ÑдобÑÑва ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑекÑÑей ÑÑÑоки команд и Ð´Ð»Ñ Ð²Ð¾Ð·Ð²ÑаÑа к пÑедÑдÑÑим. ÐÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ авÑомаÑиÑеÑки ÑÐ¾Ñ ÑанÑеÑÑÑ Ð¿Ñи вÑÑ Ð¾Ð´Ðµ из psql и загÑÑжаеÑÑÑ Ð¿Ñи запÑÑке. ÐÑзваÑÑ Ð¿ÑедÑдÑÑие ÑÑÑоки из иÑÑоÑии можно, Ð½Ð°Ð¶Ð¸Ð¼Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑÑ Â«ÑÑÑелка ввеÑÑ Â» или Control-P.
ÐÑ Ñакже можеÑе иÑполÑзоваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ ÑабÑлÑÑией Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑаÑÑиÑно введÑннÑÑ
клÑÑевÑÑ
Ñлов и имÑн обÑекÑов SQL во многиÑ
(но не во вÑеÑ
) конÑекÑÑаÑ
. ÐапÑимеÑ, еÑли в наÑале ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²Ð²ÐµÑÑи ins и нажаÑÑ TAB, Ð²Ñ Ð¿Ð¾Ð»ÑÑиÑе insert into. ÐÑли заÑем набÑаÑÑ Ð½ÐµÑколÑко Ñимволов имени ÑаблиÑÑ Ð¸Ð»Ð¸ ÑÑ
ÐµÐ¼Ñ Ð¸ нажаÑÑ ÐºÐ»Ð°Ð²Ð¸ÑÑ TAB, неоконÑенное Ð¸Ð¼Ñ Ð±ÑÐ´ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾ либо бÑÐ´ÐµÑ Ð¿Ñедложен ÑпиÑок возможнÑÑ
ваÑианÑов дополнениÑ, еÑли иÑ
неÑколÑко. (РзавиÑимоÑÑи Ð¾Ñ Ð¸ÑполÑзÑемой библиоÑеки Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð½Ð°Ð¶Ð°ÑÑ TAB более одного Ñаза, ÑÑÐ¾Ð±Ñ Ð²ÑзваÑÑ ÑÑÐ¾Ñ ÑпиÑок.)
ЧÑÐ¾Ð±Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ ÑабÑлÑÑией ÑабоÑало Ð´Ð»Ñ Ð¸Ð¼Ñн обÑекÑов SQL, необÑ
одимо пеÑедаваÑÑ ÑеÑвеÑÑ Ð·Ð°Ð¿ÑоÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ
ваÑианÑов. РнекоÑоÑÑÑ
конÑекÑÑаÑ
ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¼ÐµÑаÑÑ Ð´ÑÑгим опеÑаÑиÑм. ÐапÑимеÑ, вÑполнÑÑÑ Ð¿Ð¾Ñле BEGIN ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SET TRANSACTION ISOLATION LEVEL бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð´Ð½Ð¾, еÑли Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ вклиниÑÑÑ Ð·Ð°Ð¿ÑоÑ, вÑполнÑемÑй Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑабÑлÑÑией. ÐÑли вам вообÑе не нÑжно дополнение ÑабÑлÑÑией, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе оÑклÑÑиÑÑ ÐµÐ³Ð¾ навÑегда, добавив ÑледÑÑÑие ÑÑÑоки в Ñайл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ .inputrc в ваÑем домаÑнем каÑалоге:
$if psql set disable-completion on $endif
(ÐÑо возможноÑÑÑ Readline, а не psql. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº докÑменÑаÑии Readline.)
ЧÑÐ¾Ð±Ñ Ð¾ÑказаÑÑÑÑ Ð¾Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Readline в ÑекÑÑем ÑеанÑе psql, Ñакже можно воÑполÑзоваÑÑÑÑ Ð¿Ð°ÑамеÑÑом командной ÑÑÑоки -n (--no-readline). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾ÑклÑÑÐ°ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ ÑабÑлÑÑией, иÑполÑзование и запиÑÑ Ð¸ÑÑоÑии команд, а Ñакже ÑедакÑиÑование многоÑÑÑоÑнÑÑ
команд. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾, когда нÑжно ÑкопиÑоваÑÑ Ð¸ вÑÑавиÑÑ ÑекÑÑ, ÑодеÑжаÑий ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ TAB.
ÐеÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ #
COLUMNS#ÐÑли
\pset columnsÑавно нÑлÑ, ÑпÑавлÑÐµÑ ÑиÑиной ÑоÑмаÑа вÑводаwrapped, а Ñакже опÑеделÑеÑ, нÑжно ли иÑполÑзоваÑÑ Ð¿Ð¾ÑÑÑаниÑник и нÑжно ли пеÑеклÑÑаÑÑÑÑ Ð² веÑÑикалÑнÑй ÑоÑÐ¼Ð°Ñ Ð² Ñежимеexpanded auto.PGDATABASEPGHOSTPGPORTPGUSER#ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (Ñм. Раздел 33.15).
PG_COLOR#ÐÑбиÑÐ°ÐµÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑвеÑа в диагноÑÑиÑеÑÐºÐ¸Ñ ÑообÑениÑÑ . ÐозможнÑе знаÑениÑ:
always(вÑегда),auto(авÑомаÑиÑеÑки) иnever(никогда).PSQL_EDITOREDITORVISUAL#РедакÑоÑ, иÑполÑзÑемÑй командами
\e,\efи\ev. ÐÑи пеÑеменнÑе ÑаÑÑмаÑÑиваÑÑÑÑ Ð² Ñом же поÑÑдке; в ÑÐ¸Ð»Ñ Ð²ÑÑÑÐ¿Ð°ÐµÑ Ð¿ÐµÑвое ÑÑÑановленное знаÑение. ÐÑли ни одна из пеÑеменнÑÑ Ð½Ðµ ÑÑÑановлена, по ÑмолÑÐ°Ð½Ð¸Ñ Ð² Unix-ÑиÑÑÐµÐ¼Ð°Ñ Ð¸ÑполÑзÑеÑÑÑvi, а в Windows ânotepad.exe.PSQL_EDITOR_LINENUMBER_ARG#ÐÑли в командаÑ
\e,\efили\evÑказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð·Ð°Ð´Ð°ÑÑ Ð°ÑгÑÐ¼ÐµÐ½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, Ñ ÐºÐ¾ÑоÑÑм Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÐµÑедан в ÑедакÑоÑ. ÐапÑимеÑ, Ð´Ð»Ñ ÑедакÑоÑов Emacs и vi ÑÑо знак плÑÑ. ÐобавÑÑе в ÐºÐ¾Ð½ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ñобел, еÑли он ÑÑебÑеÑÑÑ Ð´Ð»Ñ Ð¾ÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ аÑгÑменÑа Ð¾Ñ Ð½Ð¾Ð¼ÐµÑа ÑÑÑоки. ÐÑимеÑÑ:PSQL_EDITOR_LINENUMBER_ARG='+' PSQL_EDITOR_LINENUMBER_ARG='--line '
ÐнаÑение по ÑмолÑаниÑ
+в Unix-подобнÑÑ ÑиÑÑÐµÐ¼Ð°Ñ (ÑооÑвеÑÑÑвÑÐµÑ ÑедакÑоÑÑ Ð¿Ð¾ ÑмолÑаниÑviи многим дÑÑгим ÑаÑпÑоÑÑÑанÑннÑм ÑедакÑоÑам). Ðа плаÑÑоÑме Windows Ð½ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.PSQL_HISTORY#ÐлÑÑеÑнаÑивное ÑаÑположение Ñайла Ñ Ð¸ÑÑоÑией команд. ÐопÑÑкаеÑÑÑ Ð¸ÑполÑзование ÑилÑÐ´Ñ (
~).PSQL_PAGERPAGER#ÐÑли ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа не помеÑаеÑÑÑ Ð½Ð° ÑкÑане, он пÑопÑÑкаеÑÑÑ ÑеÑез ÑÑÑ Ð¿ÑогÑаммÑ. ÐбÑÑно ÑÑо
moreилиless. ÐÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑÑÑаниÑника можно оÑказаÑÑÑÑ, пÑиÑвоив пеÑеменнойPSQL_PAGERилиPAGERпÑÑÑÑÑ ÑÑÑокÑ, либо изменив ÑооÑвеÑÑÑвÑÑÑие паÑамеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\pset. ÐаннÑе пеÑеменнÑе пÑоÑмаÑÑиваÑÑÑÑ Ð² ÑÑом же поÑÑдке; иÑполÑзÑеÑÑÑ Ð¿ÐµÑÐ²Ð°Ñ ÑÑÑановленнаÑ. ÐÑли не ÑÑÑановлена ни одна из пеÑеменнÑÑ , в болÑÑинÑÑве плаÑÑоÑм иÑполÑзÑеÑÑÑmore, а в Cygwin âless.PSQL_WATCH_PAGER#Ðогда команда
\watchповÑоÑÑÐµÑ Ð¾Ð´Ð¸Ð½ и ÑÐ¾Ñ Ð¶Ðµ запÑоÑ, поÑÑÑаниÑник по ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ðµ иÑполÑзÑеÑÑÑ. ÐÑо поведение можно измениÑÑ, Ñказав вPSQL_WATCH_PAGERÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð»Ñ Ð²Ñзова поÑÑÑаниÑника (в ÑиÑÑÐµÐ¼Ð°Ñ Unix). ÐоÑÑÑаниÑникpspg(не ÑвлÑÑÑийÑÑ ÑаÑÑÑÑ PostgreSQL, но имеÑÑийÑÑ Ð²Ð¾ Ð¼Ð½Ð¾Ð³Ð¸Ñ Ð´Ð¸ÑÑÑибÑÑÐ¸Ð²Ð°Ñ Ð¾ÑкÑÑÑого пÑогÑаммного обеÑпеÑениÑ) Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑобÑажаÑÑ Ð²Ñвод\watch, еÑли пеÑедаÑÑ ÐµÐ¼Ñ ÐºÐ»ÑÑ--stream.PSQLRC#ÐлÑÑеÑнаÑивное ÑаÑположение полÑзоваÑелÑÑкого Ñайла
.psqlrc. ÐопÑÑкаеÑÑÑ Ð¸ÑполÑзование ÑилÑÐ´Ñ (~).SHELL#Ðоманда опеÑаÑионной ÑиÑÑемÑ, вÑполнÑÐµÐ¼Ð°Ñ Ð¼ÐµÑакомандой
\!.TMPDIR#ÐаÑалог Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²ÑеменнÑÑ Ñайлов. Ðо ÑмолÑаниÑ
/tmp.
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 33.15).
ФайлÑ
psqlrcи~/.psqlrc#ÐÑи запÑÑке без паÑамеÑÑа
-XпÑогÑамма psql пÑÑаеÑÑÑ ÑÑиÑаÑÑ Ð¸ вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¸Ð· обÑеÑиÑÑемного ÑÑаÑÑового Ñайла (psqlrc), а заÑем из пеÑÑоналÑного ÑÑаÑÑового Ñайла полÑзоваÑÐµÐ»Ñ (~/.psqlrc), поÑле подклÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ , но пеÑед полÑÑением обÑÑнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´. ÐÑими Ñайлами можно воÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð½Ð°ÑÑÑойки клиенÑа и/или ÑеÑвеÑа, как пÑавило, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´\setиSET.ÐбÑеÑиÑÑемнÑй ÑÑаÑÑовÑй Ñайл назÑваеÑÑÑ
psqlrc, по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½ бÑÐ´ÐµÑ Ð¸ÑкаÑÑÑÑ Ð² каÑалоге ÑÑÑановки «конÑигÑÑаÑÐ¸Ñ ÑиÑÑемÑ». ÐÐ»Ñ Ñого ÑÑÐ¾Ð±Ñ ÑзнаÑÑ ÑÑÐ¾Ñ ÐºÐ°Ñалог, надÑжнее вÑего вÑполниÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñpg_config --sysconfdir. ÐбÑÑно он ÑаÑположен в../etc/оÑноÑиÑелÑно каÑалога, ÑодеÑжаÑего иÑполнÑемÑе ÑÐ°Ð¹Ð»Ñ Postgres Pro. ÐÑÑÑ Ðº ÑÑÐ¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð³Ñ Ñакже можно задаÑÑ Ñвно в пеÑеменной окÑÑжениÑPGSYSCONFDIR.ÐеÑÑоналÑнÑй ÑÑаÑÑовÑй Ñайл полÑзоваÑÐµÐ»Ñ Ð½Ð°Ð·ÑваеÑÑÑ
.psqlrc, он бÑÐ´ÐµÑ Ð¸ÑкаÑÑÑÑ Ð² домаÑнем каÑалоге вÑзÑваÑÑего полÑзоваÑелÑ. Ð Windows пÑÑÑ Ðº пеÑÑоналÑÐ½Ð¾Ð¼Ñ ÑÑаÑÑÐ¾Ð²Ð¾Ð¼Ñ ÑÐ°Ð¹Ð»Ñ â%APPDATA%\postgresql\psqlrc.conf. РлÑбом ÑлÑÑае подÑазÑмеваемÑй по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пеÑеопÑеделиÑÑ, ÑÑÑановив пеÑеменнÑÑ Ð¾ÐºÑÑжениÑPSQLRC.Ðба ÑÑаÑÑовÑÑ Ñайла, обÑеÑиÑÑемнÑй и пеÑÑоналÑнÑй, можно пÑивÑзаÑÑ Ðº конкÑеÑной веÑÑии psql, добавив минÑÑ Ð¸ иденÑиÑикаÑÐ¾Ñ Ð¾Ñновной или дополниÑелÑной веÑÑии Postgres Pro к имени Ñайла, напÑимеÑ:
~/.psqlrc-16или~/.psqlrc-16.11.1. ÐÑи Ñовпадении неÑколÑÐºÐ¸Ñ Ñказаний Ñ ÑекÑÑей веÑÑией psql пÑиоÑиÑеÑнее бÑÐ´ÐµÑ Ñайл Ñ Ð±Ð¾Ð»ÐµÐµ полнÑм Ñказанием. СÑÑÑикÑÑ Ð²ÐµÑÑий пÑи поиÑке Ñайла добавлÑÑÑÑÑ Ð¿Ð¾Ñле Ñого, как опиÑаннÑм вÑÑе обÑазом бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑн пÑÑÑ Ðº ÑайлÑ..psql_history#ÐÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ñ ÑаниÑÑÑ Ð² Ñайле
~/.psql_historyили%APPDATA%\postgresql\psql_historyна Windows.РаÑположение Ñайла иÑÑоÑии можно задаÑÑ Ñвно ÑеÑез пеÑеменнÑÑ psql
HISTFILEили ÑеÑез пеÑеменнÑÑ Ð¾ÐºÑÑжениÑPSQL_HISTORY.
ÐÑимеÑаниÑ
psql лÑÑÑе вÑего ÑабоÑÐ°ÐµÑ Ñ ÑеÑвеÑами Ñой же или более ÑÑаÑой оÑновной веÑÑии. Сбой меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ веÑоÑÑен, еÑли веÑÑÐ¸Ñ ÑеÑвеÑа новее, Ñем веÑÑÐ¸Ñ psql. Ðднако ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑемейÑÑва
\dÐ´Ð¾Ð»Ð¶Ð½Ñ ÑабоÑаÑÑ Ñ Ð²ÐµÑÑиÑми ÑеÑвеÑа до 9.2, Ñ Ð¾ÑÑ Ð¸ необÑзаÑелÑно Ñ ÑеÑвеÑами новее, Ñем Ñам psql. ÐбÑÐ°Ñ ÑÑнкÑионалÑноÑÑÑ Ð·Ð°Ð¿ÑÑка SQL-команд и оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑезÑлÑÑаÑов запÑоÑов Ñакже должна ÑабоÑаÑÑ Ð½Ð° ÑеÑвеÑÐ°Ñ Ñ Ð±Ð¾Ð»ÐµÐµ новой оÑновной веÑÑией, но ÑÑо не гаÑанÑиÑÑеÑÑÑ Ð²Ð¾ вÑÐµÑ ÑлÑÑаÑÑ .ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе, пÑименÑÑ psql, подклÑÑаÑÑÑÑ Ðº неÑколÑким ÑеÑвеÑам Ñ ÑазлиÑнÑми оÑновнÑми веÑÑиÑми, ÑекомендÑеÑÑÑ Ð¸ÑполÑзоваÑÑ Ð¿Ð¾ÑледнÑÑ Ð²ÐµÑÑÐ¸Ñ psql. Также можно ÑобÑаÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ psql Ð¾Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ оÑновной веÑÑии и иÑполÑзоваÑÑ ÑÑ, коÑоÑÐ°Ñ ÑооÑвеÑÑÑвÑÐµÑ Ð²ÐµÑÑии ÑеÑвеÑа. Ðо на пÑакÑике в ÑÑÐ¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ ÑложноÑÑÑÑ Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи.
Ð Postgres Pro до веÑÑии 9.6 паÑамеÑÑ
-cподÑазÑмевал-X(--no-psqlrc); ÑепеÑÑ ÑÑо не Ñак.Ð PostgreSQL до 8.4 пÑогÑамма psql могла пÑинÑÑÑ Ð¿ÐµÑвÑй аÑгÑÐ¼ÐµÐ½Ñ Ð¾Ð´Ð½Ð¾Ð±Ñквенной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле командÑ, без пÑомежÑÑоÑного пÑобела. ТепеÑÑ ÑазделиÑелÑнÑй пÑобелÑнÑй Ñимвол обÑзаÑелен.
ÐамеÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей Windows
psql Ñоздан как «конÑолÑное пÑиложение». ÐоÑколÑÐºÑ Ð² Windows конÑолÑнÑе окна иÑполÑзÑÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ñимволов оÑлиÑнÑÑ Ð¾Ñ Ñой, ÑÑо иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¾ÑÑалÑной ÑиÑÑемÑ, нÑжно пÑоÑвиÑÑ Ð¾ÑобÑÑ Ð¾ÑÑоÑожноÑÑÑ Ð¿Ñи иÑполÑзовании 8-биÑнÑÑ Ñимволов. ÐÑли psql обнаÑÑÐ¶Ð¸Ñ Ð¿ÑоблемнÑÑ ÐºÐ¾Ð´Ð¾Ð²ÑÑ ÑÑÑаниÑÑ ÐºÐ¾Ð½Ñоли, он пÑедÑпÑÐµÐ´Ð¸Ñ Ð²Ð°Ñ Ð¿Ñи запÑÑке. ЧÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ ÐºÐ¾Ð´Ð¾Ð²ÑÑ ÑÑÑаниÑÑ ÐºÐ¾Ð½Ñоли, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ Ð´Ð²Ðµ веÑи:
ÐадаÑÑ ÐºÐ¾Ð´Ð¾Ð²ÑÑ ÑÑÑаниÑÑ, вÑполнив
cmd.exe /c chcp 1251. (1251 ÑÑо ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ ÑÑÑаниÑа Ð´Ð»Ñ Ð Ð¾ÑÑии, замениÑе на ваÑе знаÑение.) ÐÑи иÑполÑзовании Cygwin, ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ запиÑаÑÑ Ð²/etc/profile.УÑÑановиÑе конÑолÑнÑй ÑÑиÑÑ Ð²
Lucida Console, поÑÐ¾Ð¼Ñ ÑÑо ÑаÑÑÑовÑй ÑÑиÑÑ Ð½Ðµ ÑабоÑÐ°ÐµÑ Ñ ÐºÐ¾Ð´Ð¾Ð²Ð¾Ð¹ ÑÑÑаниÑей ANSI.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ psql ÑабоÑÐ°ÐµÑ Ð² кодиÑовке UTF-8 и иÑполÑзÑÐµÑ Ð´Ð»Ñ Ð²Ñвода в конÑоли API Windows Unicode. ЧÑÐ¾Ð±Ñ Ð²Ñе ÑимволÑ, поддеÑживаемÑе ваÑим конÑолÑнÑм ÑÑиÑÑом Windows оÑобÑажалиÑÑ ÐºÐ¾ÑÑекÑно, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑÑановиÑÑ Ð´Ð»Ñ ÑÑой конÑоли кодовÑÑ ÑÑÑаниÑÑ 65001.
ÐнÑÑаллÑÑÐ¾Ñ Postgres Pro Ð´Ð»Ñ Windows ÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾ÑÑÑаниÑник less.exe Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой UTF-8 и ÑоздаÑÑ ÑÑлÑк, оÑкÑÑваÑÑий конÑолÑное окно Ñо ÑÑиÑÑом Lucida Console и кодовой ÑÑÑаниÑей 65001. ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе дÑÑгой поÑÑÑаниÑник, ÑбедиÑеÑÑ Ð² Ñом, ÑÑо он Ñоже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ UTF-8.
ÐÑ Ð¼Ð¾Ð¶ÐµÑе пеÑеопÑеделиÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ, вÑбÑаннÑÑ Ð² psql по ÑмолÑаниÑ, ÑÑÑановив пеÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ PGCLIENTENCODING.
ÐÑимеÑÑ #
ÐеÑвÑй пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, ÑÑо Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° одной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð½ÐµÑколÑко ÑÑÑок. ÐбÑаÑиÑе внимание, как менÑеÑÑÑ Ð¿ÑиглаÑение:
testdb=>CREATE TABLE my_table (testdb(>first integer not null default 0,testdb(>second text)testdb->;CREATE TABLE
ТепеÑÑ Ð¿Ð¾ÑмоÑÑим на опÑеделение ÑаблиÑÑ:
testdb=> \d my_table
ТаблиÑа "public.my_table"
СÑÐ¾Ð»Ð±ÐµÑ | Тип | ÐÑавило ÑоÑÑиÑовки | ÐопÑÑÑимоÑÑÑ NULL | Ðо ÑмолÑаниÑ
first | integer | | not null | 0
second | text | | |ТепеÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð¼ пÑиглаÑение на ÑÑо-Ñо более инÑеÑеÑное:
testdb=> \set PROMPT1 '%n@%m %~%R%# '
peter@localhost testdb=>ÐÑедположим, ÑÑо Ð²Ñ Ð²Ð½ÐµÑли даннÑе в ÑаблиÑÑ Ð¸ Ñ Ð¾ÑиÑе на Ð½Ð¸Ñ Ð¿Ð¾ÑмоÑÑеÑÑ:
peter@localhost testdb=> SELECT * FROM my_table;
first | second
-------+--------
1 | Ðдин
2 | Ðва
3 | ТÑи
4 | ЧеÑÑÑе
(4 ÑÑÑоки) ТаблиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ вÑвеÑÑи ÑазнÑми ÑпоÑобами пÑи помоÑи ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \pset:
peter@localhost testdb=>\pset border 2УÑÑановлен ÑÑÐ¸Ð»Ñ Ð³ÑÐ°Ð½Ð¸Ñ 2. peter@localhost testdb=>SELECT * FROM my_table;+-------+--------+ | first | second | +-------+--------+ | 1 | Ðдин | | 2 | Ðва | | 3 | ТÑи | | 4 | ЧеÑÑÑе | +-------+--------+ (4 ÑÑÑоки) peter@localhost testdb=>\pset border 0УÑÑановлен ÑÑÐ¸Ð»Ñ Ð³ÑÐ°Ð½Ð¸Ñ 0. peter@localhost testdb=>SELECT * FROM my_table;first second ----- ------ 1 один 2 два 3 ÑÑи 4 ÑеÑÑÑе (4 ÑÑÑоки) peter@localhost testdb=>\pset border 1УÑÑановлен ÑÑÐ¸Ð»Ñ Ð³ÑÐ°Ð½Ð¸Ñ 1. peter@localhost testdb=>\pset format csvФоÑÐ¼Ð°Ñ Ð²Ñвода: csv. peter@localhost testdb=>\pset tuples_onlyРежим вÑвода ÑолÑко коÑÑежей вклÑÑÑн. peter@localhost testdb=>SELECT second, first FROM my_table;один,1 два,2 ÑÑи,3 ÑеÑÑÑе,4 peter@localhost testdb=>\pset format unalignedФоÑÐ¼Ð°Ñ Ð²Ñвода: unaligned. peter@localhost testdb=>\pset fieldsep '\t'РазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹: " ". peter@localhost testdb=>SELECT second, first FROM my_table;один 1 два 2 ÑÑи 3 ÑеÑÑÑе 4
Также можно иÑполÑзоваÑÑ ÐºÐ¾ÑоÑкие командÑ:
peter@localhost testdb=>\a \t \xФоÑÐ¼Ð°Ñ Ð²Ñвода: aligned. Режим вÑвода ÑолÑко коÑÑежей вÑклÑÑен. РаÑÑиÑеннÑй вÑвод вклÑÑÑн. peter@localhost testdb=>SELECT * FROM my_table;-[ RECORD 1 ]- first | 1 second | Ðдин -[ RECORD 2 ]- first | 2 second | Ðва -[ RECORD 3 ]- first | 3 second | ТÑи -[ RECORD 4 ]- first | 4 second | ЧеÑÑÑе
ÐÑоме Ñого, ÑÑи паÑамеÑÑÑ ÑоÑмаÑа можно задаÑÑ ÑолÑко Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ запÑоÑа, вÑполнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \g:
peter@localhost testdb=>SELECT * FROM my_tablepeter@localhost testdb->\g (format=aligned tuples_only=off expanded=on)-[ RECORD 1 ]- first | 1 second | Ðдин -[ RECORD 2 ]- first | 2 second | Ðва -[ RECORD 3 ]- first | 3 second | ТÑи -[ RECORD 4 ]- first | 4 second | ЧеÑÑÑе
ÐÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \df Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑолÑко ÑÑнкÑий, Ð¸Ð¼Ñ ÐºÐ¾ÑоÑÑÑ
ÑооÑвеÑÑÑвÑÐµÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ int*pl, а вÑоÑой аÑгÑÐ¼ÐµÐ½Ñ Ð¸Ð¼ÐµÐµÑ Ñип bigint:
testdb=> \df int*pl * bigint
СпиÑок ÑÑнкÑий
СÑ
ема | ÐÐ¼Ñ | Тип даннÑÑ
ÑезÑлÑÑаÑа | Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
аÑгÑменÑов | Тип
------------+---------+-----------------------+------------------------+------
pg_catalog | int28pl | bigint | smallint, bigint | func
pg_catalog | int48pl | bigint | integer, bigint | func
pg_catalog | int8pl | bigint | bigint, bigint | func
(3 ÑÑÑоки)Ðогда ÑÑо ÑмеÑÑно, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑа можно пÑоÑмоÑÑеÑÑ Ð² виде пеÑекÑÑÑÑной ÑаблиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \crosstabview:
testdb=>SELECT first, second, first > 2 AS gt2 FROM my_table;first | second | gt2 -------+--------+----- 1 | one | f 2 | two | f 3 | three | t 4 | four | t (4 rows) testdb=>\crosstabview first secondfirst | one | two | three | four -------+-----+-----+-------+------ 1 | f | | | 2 | | f | | 3 | | | t | 4 | | | | t (4 rows)
ÐÑоÑой пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ ÑаблиÑÑ ÑмножениÑ, ÑÑÑоки в коÑоÑой оÑÑоÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð² обÑаÑном ÑиÑловом поÑÑдке, а ÑÑолбÑÑ â незавиÑимо, по возÑаÑÑÐ°Ð½Ð¸Ñ ÑиÑловÑÑ Ð·Ð½Ð°Ñений.
testdb=>SELECT t1.first as "A", t2.first+100 AS "B", t1.first*(t2.first+100) as "AxB",testdb(>row_number() over(order by t2.first) AS ordtestdb(>FROM my_table t1 CROSS JOIN my_table t2 ORDER BY 1 DESCtestdb(>\crosstabview "A" "B" "AxB" ordA | 101 | 102 | 103 | 104 ---+-----+-----+-----+----- 4 | 404 | 408 | 412 | 416 3 | 303 | 306 | 309 | 312 2 | 202 | 204 | 206 | 208 1 | 101 | 102 | 103 | 104 (4 rows)