psql
psql â ÐнÑеÑакÑивнÑй ÑеÑминал Postgres Pro
СинÑакÑиÑ
psql [паÑамеÑÑ...] [имÑ_бд [имÑ_полÑзоваÑелÑ]]
ÐпиÑание
ÐÑогÑамма psql â ÑÑо ÑеÑминалÑнÑй ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Postgres Pro. Ðна позволÑÐµÑ Ð¸Ð½ÑеÑакÑивно вводиÑÑ Ð·Ð°Ð¿ÑоÑÑ, пеÑедаваÑÑ Ð¸Ñ Ð² Postgres Pro и видеÑÑ ÑезÑлÑÑаÑÑ. Также запÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð¸Ð· Ñайла или из аÑгÑменÑов командной ÑÑÑоки. ÐÑоме Ñого, psql пÑедоÑÑавлÑÐµÑ ÑÑд меÑакоманд и ÑазлиÑнÑе возможноÑÑи, подобнÑе Ñем, ÑÑо имеÑÑÑÑ Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½ÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ñек, Ð´Ð»Ñ Ð¾Ð±Ð»ÐµÐ³ÑÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÑкÑипÑов и авÑомаÑизаÑии ÑиÑокого ÑпекÑÑа задаÑ.
ÐаÑамеÑÑÑ
-a--echo-allÐÑпÑавлÑÐµÑ Ð² ÑÑандаÑÑнÑй вÑвод вÑе непÑÑÑÑе Ð²Ñ Ð¾Ð´Ð½Ñе ÑÑÑоки по меÑе Ð¸Ñ ÑÑениÑ. (ÐÑо не оÑноÑиÑÑÑ Ðº ÑÑÑокам, ÑÑиÑаннÑм в инÑеÑакÑивном Ñежиме.) ÐквиваленÑно ÑÑÑановке пеÑеменной
ECHOв знаÑениеall.-A--no-alignÐеÑеклÑÑение на невÑÑовненнÑй Ñежим вÑвода. (Ðо ÑмолÑаниÑ, наобоÑоÑ, иÑполÑзÑеÑÑÑ Ð²ÑÑовненнÑй Ñежим вÑвода.)
-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, ÑазделÑÑÑие ÐµÑ Ð½Ð° неÑколÑко ÑÑанзакÑий. ÐÑоме Ñого, psql пеÑаÑÐ°ÐµÑ ÑезÑлÑÑÐ°Ñ ÑолÑко поÑледней SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² ÑÑÑоке. ÐÑо оÑлиÑаеÑÑÑ Ð¾Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ, когда Ñа же ÑÑÑока ÑÑиÑÑваеÑÑÑ Ð¸Ð· Ñайла или подаÑÑÑÑ Ð½Ð° ÑÑандаÑÑнÑй ввод psql, Ñак как в поÑледнем ÑлÑÑае psql пеÑедаÑÑ ÐºÐ°Ð¶Ð´ÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL оÑделÑно.Ðз-за Ñакого Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñказание неÑколÑÐºÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ в одной ÑÑÑоке
-cÑаÑÑо пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº неожиданнÑм ÑезÑлÑÑаÑам. ÐоÑÑÐ¾Ð¼Ñ Ð»ÑÑÑе иÑполÑзоваÑÑ Ð½ÐµÑколÑко клÑÑей-cили подаваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð° ÑÑандаÑÑнÑй ввод psql, пÑименÑÑ Ð»Ð¸Ð±Ð¾ echo, как показано вÑÑе, либо ÑоздаваемÑй пÑÑмо в оболоÑке докÑменÑ, напÑимеÑ:psql <<EOF \x SELECT * FROM foo; EOF
-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.-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.-TпаÑамеÑÑÑ_ÑаблиÑÑ--table-attr=паÑамеÑÑÑ_ÑаблиÑÑÐадаÑÑ Ð°ÑÑибÑÑÑ, коÑоÑÑе бÑдÑÑ Ð²ÑÑÐ°Ð²Ð»ÐµÐ½Ñ Ð² Ñег HTML
table. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº опиÑаниÑ\pset.-UимÑ_полÑзоваÑелÑ--username=имÑ_полÑзоваÑелÑÐÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ðº базе даннÑÑ
имÑ_полÑзоваÑелÑвмеÑÑо подÑазÑмеваемого по ÑмолÑаниÑ. (РазÑмееÑÑÑ, ÑÑо поÑÑебÑÐµÑ ÑооÑвеÑÑÑвÑÑÑего ÑазÑеÑениÑ.)-vпÑиÑвоение--set=пÑиÑвоение--variable=пÑиÑвоениеÐÑполнÑÐµÑ Ð¿ÑиÑвоение знаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменной, как меÑакоманда
\set. ÐбÑаÑиÑе внимание на Ñо, ÑÑо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазделиÑÑ Ð¸Ð¼Ñ Ð¿ÐµÑеменной и знаÑение (пÑи налиÑии) знаком ÑавенÑÑва в командной ÑÑÑоке. ЧÑÐ¾Ð±Ñ ÑбÑоÑиÑÑ Ð¿ÐµÑеменнÑÑ, опÑÑÑиÑе знак ÑавенÑÑва. ЧÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ð¿ÑÑÑое знаÑение, поÑÑавÑÑе знак ÑавенÑÑва, но опÑÑÑиÑе знаÑение. ÐÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²ÑполнÑÑÑÑÑ Ð½Ð° оÑÐµÐ½Ñ Ñанней ÑÑадии запÑÑка, поÑÑÐ¾Ð¼Ñ ÐµÑли пеÑеменнÑе заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ Ð²Ð½ÑÑÑÐµÐ½Ð½Ð¸Ñ Ñелей, Ñо позже они могÑÑ Ð±ÑÑÑ Ð¿ÐµÑезапиÑанÑ.-V--versionÐÑÐ²Ð¾Ð´Ð¸Ñ Ð²ÐµÑÑÐ¸Ñ psql и завеÑÑÐ°ÐµÑ ÑабоÑÑ.
-w--no-passwordÐе вÑдаваÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° ввод паÑолÑ. ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð· дÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников, напÑÐ¸Ð¼ÐµÑ Ð¸Ð· Ñайла
.pgpass, попÑÑка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑдаÑÑÑÑ. ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·ÐµÐ½ в пакеÑнÑÑ Ð·Ð°Ð´Ð°Ð½Ð¸ÑÑ Ð¸ ÑкÑипÑÐ°Ñ , где Ð½ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑÑй Ð²Ð²Ð¾Ð´Ð¸Ñ Ð¿Ð°ÑолÑ.ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð½Ð° пÑоÑÑжении вÑей ÑеÑÑии и, Ñаким обÑазом, влиÑÐµÑ Ð½Ð° меÑакомандÑ
\connect, Ñак же как и на пеÑвÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ ÑоединениÑ.-W--passwordÐÑинÑдиÑелÑно запÑаÑиваÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÐµÑед подклÑÑением к базе даннÑÑ , даже еÑли он не бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ.
ÐÑли ÑеÑÐ²ÐµÑ ÑÑебÑÐµÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ Ð¿Ð¾ паÑÐ¾Ð»Ñ Ð¸ паÑÐ¾Ð»Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð· дÑÑÐ³Ð¸Ñ Ð¸ÑÑоÑников, напÑÐ¸Ð¼ÐµÑ Ð¸Ð· Ñайла
.pgpass, psql запÑоÑÐ¸Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð² лÑбом ÑлÑÑае. Ðднако ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð½ÑÑÑ, ÑÑо ÑÑебÑеÑÑÑ Ð¿Ð°ÑолÑ, psql лиÑний Ñаз подклÑÑиÑÑÑ Ðº ÑеÑвеÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¸Ð½Ð¾Ð³Ð´Ð° Ð¸Ð¼ÐµÐµÑ ÑмÑÑл ввеÑÑи-W, ÑÑÐ¾Ð±Ñ Ð¸ÑклÑÑиÑÑ ÑÑÑ Ð½ÐµÐ½ÑжнÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ.ÐбÑаÑиÑе внимание, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´ÐµÐ¹ÑÑвÑÐµÑ Ð½Ð° пÑоÑÑжении вÑей ÑеÑÑии и, Ñаким обÑазом, влиÑÐµÑ Ð½Ð° меÑакомандÑ
\connect, Ñак же как и на пеÑвÑÑ Ð¿Ð¾Ð¿ÑÑÐºÑ ÑоединениÑ.-x--expandedÐклÑÑÐ°ÐµÑ Ñежим ÑазвÑÑнÑÑого вÑвода ÑаблиÑÑ. ÐквиваленÑно команде
\x.-X,--no-psqlrcÐе ÑиÑаÑÑ ÑÑаÑÑовÑе ÑÐ°Ð¹Ð»Ñ (ни обÑеÑиÑÑемнÑй Ñайл
psqlrc, ни полÑзоваÑелÑÑкий Ñайл~/.psqlrc).-z--field-separator-zeroУÑÑановиÑÑ Ð½Ñлевой Ð±Ð°Ð¹Ñ Ð² каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода.
-0--record-separator-zeroУÑÑановиÑÑ Ð½Ñлевой Ð±Ð°Ð¹Ñ Ð² каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода. ÐÑо полезно пÑи взаимодейÑÑвии Ñ Ð´ÑÑгими пÑогÑаммами, напÑимеÑ, Ñ
xargs -0.-1--single-transactionÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ ÑолÑко в ÑоÑеÑании Ñ Ð¾Ð´Ð½Ð¸Ð¼ или неÑколÑкими паÑамеÑÑами
-cи/или-f. С ним psql вÑполнÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´ÑBEGINпеÑед обÑабоÑкой пеÑвого Ñакого паÑамеÑÑа иCOMMITпоÑле поÑледнего, завоÑаÑÐ¸Ð²Ð°Ñ Ñаким обÑазом вÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð² Ð¾Ð´Ð½Ñ ÑÑанзакÑиÑ. ÐÑо гаÑанÑиÑÑеÑ, ÑÑо либо вÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð·Ð°Ð²ÐµÑÑаÑÑÑ ÑÑпеÑно, либо никакие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ ÑÐ¾Ñ ÑанÑÑÑÑ.ÐÑли в ÑÐ°Ð¼Ð¸Ñ ÑÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ ÑодеÑжаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑÑ
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 в ÑиÑÑемаÑ
, не поддеÑживаÑÑиÑ
UNIX-ÑокеÑÑ. ÐÐ¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð¿ÑеделÑеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии. ÐоÑколÑÐºÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
иÑполÑзÑÐµÑ Ñо же знаÑение по ÑмолÑаниÑ, ÑаÑе вÑего ÑказÑваÑÑ Ð½Ð¾Ð¼ÐµÑ Ð¿Ð¾ÑÑа не нÑжно. ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿Ð¾ ÑмолÑаниÑ, как и Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
по ÑмолÑаниÑ, ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ полÑзоваÑÐµÐ»Ñ Ð² опеÑаÑионной ÑиÑÑеме. ÐамеÑÑÑе, ÑÑо пÑоÑÑо Ñак подклÑÑаÑÑÑÑ Ðº лÑбой базе даннÑÑ
под лÑбÑм именем полÑзоваÑÐµÐ»Ñ Ð²Ñ Ð½Ðµ ÑможеÑе. УзнаÑÑ Ð¾ ваÑиÑ
пÑаваÑ
можно Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑа баз даннÑÑ
.
ÐÑли знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð½Ðµ подÑ
одÑÑ, можно ÑÑкономиÑÑ Ð½Ð° вводе паÑамеÑÑов подклÑÑениÑ, ÑÑÑановив пеÑеменнÑе ÑÑÐµÐ´Ñ PGDATABASE, PGHOST, PGPORT и/или PGUSER. (ÐÑÑгие пеÑеменнÑе ÑÑÐµÐ´Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² Разделе 30.14.) Также Ñдобно имеÑÑ Ñайл ~/.pgpass, ÑÑÐ¾Ð±Ñ Ð½Ðµ вводиÑÑ Ð¿Ð°Ñоли Ñнова и Ñнова. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº РазделÑ 30.15.
ÐлÑÑеÑнаÑивнÑй ваÑÐ¸Ð°Ð½Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов подклÑÑÐµÐ½Ð¸Ñ â иÑполÑзование ÑÑÑоки conninfo или URI вмеÑÑо имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
. ÐÑÐ¾Ñ Ð¼ÐµÑ
анизм даÑÑ ÑиÑокие возможноÑÑи Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñоединением. ÐапÑимеÑ:
$psql "service=myservice sslmode=require"$psql postgresql://dbmaster:5433/mydb?sslmode=require
ÐÑÐ¾Ñ ÑпоÑоб Ñакже позволÑÐµÑ Ð¸ÑполÑзоваÑÑ LDAP Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов подклÑÑениÑ, как опиÑано в Разделе 30.17. Ðолее полно вÑе имеÑÑиеÑÑ Ð¿Ð°ÑамеÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² ÐодÑазделе 30.1.2.
ÐÑли Ñоединение не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑановлено по лÑбой пÑиÑине (напÑимеÑ, Ð½ÐµÑ Ð¿Ñав, ÑеÑÐ²ÐµÑ Ð½Ðµ ÑабоÑÐ°ÐµÑ Ð¸ Ñ. д.), psql веÑнÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¸ пÑекÑаÑÐ¸Ñ ÑабоÑÑ.
ÐÑли и ÑÑандаÑÑнÑй ввод, и ÑÑандаÑÑнÑй вÑвод ÑвлÑÑÑÑÑ ÑеÑминалом, Ñо psql ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñа в «auto», и подÑ
одÑÑÐ°Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑÐºÐ°Ñ ÐºÐ¾Ð´Ð¸Ñовка бÑÐ´ÐµÑ Ð¾Ð¿ÑеделÑÑÑÑÑ Ð¸Ð· локалÑнÑÑ
ÑÑÑановок (пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ LC_CTYPE в Unix). ÐÑли ÑÑо ÑабоÑÐ°ÐµÑ Ð½Ðµ Ñак, как ожидалоÑÑ, кодиÑÐ¾Ð²ÐºÑ ÐºÐ»Ð¸ÐµÐ½Ñа можно измениÑÑ, ÑÑÑановив пеÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ PGCLIENTENCODING.
Ðвод SQL-команд
Ðак пÑавило, пÑиглаÑение psql ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· имени Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
, к коÑоÑой psql в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн, а заÑем ÑÑÑоки =>. ÐапÑимеÑ:
$ psql testdb
psql (9.6.24.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.
ÐекоÑоÑÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¿ÑинимаÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ SQL (напÑимеÑ, Ð¸Ð¼Ñ ÑаблиÑÑ) в каÑеÑÑве аÑгÑменÑа. Такие аÑгÑменÑÑ ÑледÑÑÑ Ð¿Ñавилам ÑинÑакÑиÑа SQL: бÑквÑ, не взÑÑÑе в кавÑÑки, пÑеобÑазÑÑÑÑÑ Ð² нижний ÑегиÑÑÑ, бÑквÑ, взÑÑÑе в двойнÑе кавÑÑки (") пÑедоÑвÑаÑаÑÑ Ð¿ÑеобÑазование ÑегиÑÑÑа и позволÑÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð¿ÑÐ¾Ð±ÐµÐ»Ñ Ð² иденÑиÑикаÑоÑ. ÐнÑÑÑи двойнÑÑ
кавÑÑек две двойнÑе кавÑÑки ÑокÑаÑаÑÑÑÑ Ð´Ð¾ одной. ÐапÑимеÑ, FOO"BAR"BAZ инÑеÑпÑеÑиÑÑеÑÑÑ ÐºÐ°Ðº fooBARbaz, а "A weird"" name" ÑÑановиÑÑÑ A weird" name.
Ð Ð°Ð·Ð±Ð¾Ñ Ð°ÑгÑменÑов оÑÑанавливаеÑÑÑ Ð² конÑе ÑÑÑоки или когда вÑÑÑеÑаеÑÑÑ Ð´ÑÑÐ³Ð°Ñ Ð¾Ð±ÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ ÑеÑÑа, не внÑÑÑи кавÑÑек. ÐбÑаÑÐ½Ð°Ñ ÐºÐ¾ÑÐ°Ñ Ð½Ðµ внÑÑÑи кавÑÑек ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº наÑало новой меÑакомандÑ. СпеÑиалÑÐ½Ð°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ \\ (две обÑаÑнÑÑ
коÑÑÑ
ÑеÑÑÑ) обознаÑÐ°ÐµÑ Ð¾ÐºÐ¾Ð½Ñание аÑгÑменÑов, далее пÑодолжаеÑÑÑ ÑÐ°Ð·Ð±Ð¾Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ SQL, еÑли ÑаковÑе имеÑÑÑÑ. Таким обÑазом, ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL и psql можно Ñвободно ÑмеÑиваÑÑ Ð² одной ÑÑÑоке. Ðо в лÑбом ÑлÑÑае аÑгÑменÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ðµ могÑÑ Ð²ÑÑ
одиÑÑ Ð·Ð° пÑÐµÐ´ÐµÐ»Ñ ÑекÑÑей ÑÑÑоки.
ÐпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑледÑÑÑие меÑакомандÑ:
\aÐÑли ÑекÑÑий Ñежим вÑвода ÑаблиÑÑ Ð½ÐµÐ²ÑÑовненнÑй, Ñо он пеÑеклÑÑаеÑÑÑ Ð½Ð° вÑÑовненнÑй Ñежим. ÐÑли ÑекÑÑий Ñежим вÑÑовненнÑй, Ñо ÑÑÑанавливаеÑÑÑ Ð½ÐµÐ²ÑÑовненнÑй. ÐÑа команда поддеÑживаеÑÑÑ Ð´Ð»Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи. См.
\psetÐ´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ обÑего ÑеÑениÑ.\cили\connect [ -reuse-previous=on|off] [имÑ_бд[имÑ_полÑзоваÑелÑ] [компÑÑÑеÑ] [поÑÑ] |ÑÑÑока_подклÑÑениÑ]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð½Ð¾Ð²Ð¾Ðµ подклÑÑение к ÑеÑвеÑÑ Postgres Pro. ÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑказÑваÑÑ ÐºÐ°Ðº позиÑионно (один или неÑколÑко по ÑпиÑкÑ: база даннÑÑ , полÑзоваÑелÑ, компÑÑÑÐµÑ Ð¸ поÑÑ), Ñак и пеÑÐµÐ´Ð°Ð²Ð°Ñ Ð°ÑгÑменÑ
ÑÑÑока_подклÑÑениÑ(подÑобнее о ÑÑÑÐ¾ÐºÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑаÑÑказÑваеÑÑÑ Ð² ÐодÑазделе 30.1.1). ÐÑли аÑгÑменÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ, новое подклÑÑение ÑÑÑанавливаеÑÑÑ Ñ Ñеми же паÑамеÑÑами, ÑÑо и пÑедÑдÑÑее.Указание в паÑамеÑÑе
имÑ_бд,имÑ_полÑзоваÑелÑ,компÑÑÑеÑилипоÑÑзнаÑениÑ-ÑавноÑилÑно опÑÑÐµÐ½Ð¸Ñ ÑÑого паÑамеÑÑа.Ðовое подклÑÑение Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²ÑоÑно иÑполÑзоваÑÑ Ð¿Ð°ÑамеÑÑÑ Ð¿ÑедÑдÑÑего â не ÑолÑко Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , полÑзоваÑелÑ, компÑÑÑÐµÑ Ð¸ поÑÑ, но и, напÑимеÑ,
Ñежим_ssl. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑÑ Ð¸ÑполÑзÑÑÑÑÑ Ð¿Ð¾Ð²ÑоÑно пÑи позиÑионной запиÑи, но не когда заданаÑÑÑока_подклÑÑениÑ. ÐÑо поведение Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑеопÑеделÑÑÑÑÑ Ð¿ÐµÑвÑм аÑгÑменÑом,-reuse-previous=onили-reuse-previous=off. Ð ÑлÑÑае повÑоÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов лÑбой паÑамеÑÑ, Ñвно не заданнÑй в виде позиÑионного или вÑÑÑоке_подклÑÑениÑ, заимÑÑвÑеÑÑÑ Ð¸Ð· паÑамеÑÑов ÑекÑÑего подклÑÑениÑ. ÐÑклÑÑение ÑоÑÑавлÑÐµÑ Ð¿Ð°ÑамеÑÑhostaddrâ еÑли он бÑл задан в пÑедÑдÑÑем подклÑÑении, а в новом в позиÑионной запиÑи задаÑÑÑÑ Ð´ÑÑгое знаÑениеhost, знаÑениеhostaddrÑбÑаÑÑваеÑÑÑ. ÐÑоме Ñого, паÑÐ¾Ð»Ñ ÑÑÑеÑÑвÑÑÑего подклÑÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¿Ð¾Ð²ÑоÑно, ÑолÑко еÑли Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, Ñзел и поÑÑ Ð½Ðµ менÑÑÑÑÑ. ÐÑли какой-либо паÑамеÑÑ Ð½Ðµ Ñказан в ÑÑой команде и не иÑполÑзÑеÑÑÑ Ð¿Ð¾Ð²ÑоÑно, дейÑÑвÑÐµÑ Ð¿ÑинÑÑое в libpq знаÑение по ÑмолÑаниÑ.ÐÑли новое подклÑÑение ÑÑпеÑно ÑÑÑановлено, пÑедÑдÑÑее подклÑÑение закÑÑваеÑÑÑ. ÐÑли попÑÑка подклÑÑÐµÐ½Ð¸Ñ Ð½Ðµ ÑдалаÑÑ (невеÑное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, доÑÑÑп запÑеÑÑн и Ñ. д.), Ñо пÑедÑдÑÑее Ñоединение оÑÑанеÑÑÑ Ð°ÐºÑивнÑм, ÑолÑко еÑли psql Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² инÑеÑакÑивном Ñежиме. ÐÑли ÑкÑÐ¸Ð¿Ñ Ð²ÑполнÑеÑÑÑ Ð½ÐµÐ¸Ð½ÑеÑакÑивно, обÑабоÑка немедленно оÑÑанавливаеÑÑÑ Ñ ÑообÑением об оÑибке. РазлиÑное поведение вÑбÑано Ð´Ð»Ñ ÑдобÑÑва полÑзоваÑÐµÐ»Ñ Ð² каÑеÑÑве заÑиÑÑ Ð¾Ñ Ð¾Ð¿ÐµÑаÑок Ñ Ð¾Ð´Ð½Ð¾Ð¹ ÑÑоÑÐ¾Ð½Ñ Ð¸ в каÑеÑÑве меÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи, не позволÑÑÑей ÑлÑÑайно запÑÑÑиÑÑ ÑкÑипÑÑ Ð² непÑавилÑной базе, Ñ Ð´ÑÑгой.
ÐÑимеÑÑ:
=> \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|to} {'имÑ_Ñайла'| program'команда'| stdin | stdout | pstdin | 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 ... toâ иÑполÑзоваÑÑ SQL-командÑCOPY ... TO STDOUTи завеÑÑиÑÑ ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹\gилиимÑ\g |. РоÑлиÑие оÑпÑогÑамма\copy, ÑÑÐ¾Ñ Ð¿Ð¾Ð´Ñ Ð¾Ð´ позволÑÐµÑ ÑазбиваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð° неÑколÑко ÑÑÑок, а Ñакже иÑполÑзоваÑÑ Ð¸Ð½ÑеÑполÑÑÐ¸Ñ Ð¿ÐµÑеменнÑÑ Ð¸ ÑаÑкÑÑÑие обÑаÑнÑÑ ÐºÐ°Ð²ÑÑек (`).ÐодÑказка
ÐÑи опеÑаÑии не Ñак ÑÑÑекÑивнÑ, как SQL-команда
COPY, в коÑоÑой иÑÑоÑником или полÑÑаÑелем даннÑÑ ÑвлÑеÑÑÑ Ñайл или пÑогÑамма, поÑÐ¾Ð¼Ñ ÑÑо вÑе даннÑе пеÑемеÑаÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом. ÐÐ»Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑÑмов даннÑÑ SQL-команда Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедпоÑÑиÑелÑнее.\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[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок меÑодов доÑÑÑпа. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе меÑÐ¾Ð´Ñ Ð´Ð¾ÑÑÑпа, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ меÑода доÑÑÑпа показÑваеÑÑÑ ÐµÐ³Ð¾ опиÑание и ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ ÑÑнкÑиÑ-обÑабоÑÑик.\db[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑнÑÑ Ð¿ÑоÑÑÑанÑÑв. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе ÑаблиÑнÑе пÑоÑÑÑанÑÑва, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно вÑводÑÑÑÑ Ð¿Ð°ÑамеÑÑÑ, обÑÑм на диÑке, пÑава доÑÑÑпа и опиÑание.\dc[S+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑеобÑазований Ð¼ÐµÐ¶Ð´Ñ ÐºÐ¾Ð´Ð¸Ñовками набоÑов Ñимволов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð¸Ñовок, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\dC[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑиведений Ñипов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñипов, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\dd[S] [Ñаблон]ÐоказÑÐ²Ð°ÐµÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов ÑледÑÑÑÐ¸Ñ Ð²Ð¸Ð´Ð¾Ð²:
огÑаниÑение,клаÑÑ Ð¾Ð¿ÐµÑаÑоÑов,ÑемейÑÑво опеÑаÑоÑов,пÑавилоиÑÑиггеÑ. ÐпиÑÐ°Ð½Ð¸Ñ Ð¾ÑÑалÑнÑÑ Ð¾Ð±ÑекÑов можно поÑмоÑÑеÑÑ ÑооÑвеÑÑÑвÑÑÑими меÑакомандами Ð´Ð»Ñ ÑÑÐ¸Ñ Ñипов обÑекÑов.\ddпоказÑÐ²Ð°ÐµÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð±ÑекÑов, ÑооÑвеÑÑÑвÑÑÑиÑÑаблонÑ, или Ð´Ð»Ñ Ð´Ð¾ÑÑÑпнÑÑ Ð¾Ð±ÑекÑов ÑказаннÑÑ Ñипов, еÑли аÑгÑменÑÑ Ð½Ðµ заданÑ. Ðо в лÑбом ÑлÑÑае вÑводÑÑÑÑ ÑолÑко Ñе обÑекÑÑ, коÑоÑÑе имеÑÑ Ð¾Ð¿Ð¸Ñание. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.ÐпиÑÐ°Ð½Ð¸Ñ Ð¾Ð±ÑекÑов ÑоздаÑÑÑÑ SQL-командой COMMENT.
\ddp [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок пÑав доÑÑÑпа по ÑмолÑаниÑ. ÐÑводиÑÑÑ ÑÑÑока Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ñоли (и ÑÑ ÐµÐ¼Ñ, еÑли пÑименимо), Ð´Ð»Ñ ÐºÐ¾ÑоÑой пÑава доÑÑÑпа по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑлиÑаÑÑÑÑ Ð¾Ñ Ð²ÑÑÑоеннÑÑ . ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑÑÑоки ÑолÑко Ð´Ð»Ñ ÑÐµÑ Ñолей и ÑÑ ÐµÐ¼, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.ÐÑава доÑÑÑпа по ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑанавливаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ ALTER DEFAULT PRIVILEGES. СмÑÑл оÑобÑажаемÑÑ Ð¿Ñав обÑÑÑнÑеÑÑÑ Ð² опиÑании GRANT.
\dD[S+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок доменов. ÐÑли Ñказан
Ñаблон, показÑваÑÑÑÑ ÑолÑко Ñе доменÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ñава доÑÑÑпа и опиÑание.\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[antwS+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑнкÑий Ñ Ñипами даннÑÑ Ð¸Ñ ÑезÑлÑÑаÑов, аÑгÑменÑов и клаÑÑиÑикаÑией: «agg» (агÑегаÑнаÑ), «normal» (обÑÑнаÑ), «trigger» (ÑÑиггеÑнаÑ) или «window» (оконнаÑ). ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑÑнкÑии ÑолÑко опÑеделÑнного вида (видов), добавÑÑе в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑооÑвеÑÑÑвÑÑÑие бÑквÑ
a,n,tилиw. ÐÑли заданÑаблон, показÑваÑÑÑÑ ÑолÑко Ñе ÑÑнкÑии, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко ÑÑнкÑии, ÑозданнÑе полÑзоваÑелÑми; Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\df+, Ñо дополниÑелÑно вÑводÑÑÑÑ Ñ Ð°ÑакÑеÑиÑÑики каждой ÑÑнкÑии: изменÑивоÑÑÑ, допÑÑÑимоÑÑÑ ÑаÑпаÑаллеливаниÑ, владелеÑ, клаÑÑиÑикаÑÐ¸Ñ Ð¿Ð¾ безопаÑноÑÑи, пÑава доÑÑÑпа, ÑзÑк, иÑÑ Ð¾Ð´Ð½Ñй код и опиÑание.ÐодÑказка
ЧÑÐ¾Ð±Ñ Ð½Ð°Ð¹Ñи ÑÑнкÑии Ñ Ð°ÑгÑменÑами или возвÑаÑаемÑми знаÑениÑми опÑеделÑнного Ñипа даннÑÑ , воÑполÑзÑйÑеÑÑ Ð¸Ð¼ÐµÑÑейÑÑ Ð² поÑÑÑаниÑнике возможноÑÑÑÑ Ð¿Ð¾Ð¸Ñка в вÑводе
\df.\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 [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑ, пÑедÑÑавлений и поÑледоваÑелÑноÑÑей Ñ Ð¸Ñ Ð¿Ñавами доÑÑÑпа. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко ÑаблиÑÑ, пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑи, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.ÐÐ»Ñ ÑÑÑановки пÑав доÑÑÑпа иÑполÑзÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ GRANT и REVOKE. СмÑÑл оÑобÑажаемÑÑ Ð¿Ñав обÑÑÑнÑеÑÑÑ Ð² опиÑании GRANT.
\drds [Ñаблон-Ñолей[Ñаблон-баз] ]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑÑановленнÑÑ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии. ÐÑи паÑамеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð±ÑÑÑ ÑпеÑиÑиÑнÑми Ð´Ð»Ñ Ñоли, ÑпеÑиÑиÑнÑми Ð´Ð»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , или Ð¾Ð±ÐµÐ¸Ñ . ÐаÑамеÑÑÑ
Ñаблон-ÑолейиÑаблон-базиÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¾ÑбоÑа опÑеделÑннÑÑ Ñолей и баз даннÑÑ , ÑооÑвеÑÑÑвенно. ÐÑли они опÑÑенÑ, или Ñказано*, вÑводÑÑÑÑ Ð²Ñе паÑамеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑии, в Ñом ÑиÑле не оÑноÑÑÑиеÑÑ Ðº ÑолÑм или базам даннÑÑ .ÐÐ¾Ð¼Ð°Ð½Ð´Ñ ALTER ROLE и ALTER DATABASE иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов конÑигÑÑаÑии, ÑпеÑиÑиÑнÑÑ Ð´Ð»Ñ Ñоли или Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .
\dT[S+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñипов даннÑÑ . ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑипÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñипа даннÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ: внÑÑÑеннее Ð¸Ð¼Ñ Ñипа, ÑазмеÑ, допÑÑÑимÑе знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ñипаenumи пÑава доÑÑÑпа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑÑÑ ÑолÑко обÑекÑÑ, ÑозданнÑе полÑзоваÑелÑми. ÐÐ»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑиÑÑемнÑÑ Ð¾Ð±ÑекÑов нÑжно задаÑÑ Ñаблон или добавиÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑS.\du[S+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок Ñолей Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . (Так как понÑÑÐ¸Ñ Â«Ð¿Ð¾Ð»ÑзоваÑели» и «гÑÑппÑ» бÑли обÑÐµÐ´Ð¸Ð½ÐµÐ½Ñ Ð² «Ñоли», ÑÑа команда ÑепеÑÑ ÑавнознаÑна
\dg.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑводÑÑÑÑ ÑолÑко Ñоли, ÑозданнÑе полÑзоваÑелÑми: ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¸ ÑиÑÑемнÑе Ñоли, добавÑÑе модиÑикаÑоÑS. ÐÑли ÑказанÑаблон, вÑводÑÑÑÑ ÑолÑко Ñе Ñоли, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\du+, Ñо вÑводиÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ каждой Ñоли; в наÑÑоÑÑее вÑÐµÐ¼Ñ ÑÑо комменÑаÑий Ñоли.\dx[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑÑÑановленнÑÑ ÑаÑÑиÑений. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко ÑаÑÑиÑениÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑли иÑполÑзÑеÑÑÑ ÑоÑма\dx+, Ñо Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑаÑÑиÑÐµÐ½Ð¸Ñ Ð²ÑводÑÑÑÑ Ð²Ñе пÑинадлежаÑие ÐµÐ¼Ñ Ð¾Ð±ÑекÑÑ.\dy[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑобÑÑийнÑÑ ÑÑиггеÑов. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ñе ÑобÑÑийнÑе ÑÑиггеÑÑ, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа дополниÑелÑно бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð¾Ð¿Ð¸Ñание.\eили\edit[имÑ_Ñайла] [номеÑ_ÑÑÑоки]ÐÑли Ñказано
имÑ_Ñайла, Ñайл оÑкÑÑваеÑÑÑ Ð´Ð»Ñ ÑедакÑиÑованиÑ. ÐоÑле вÑÑ Ð¾Ð´Ð° из ÑедакÑоÑа его ÑодеÑжимое копиÑÑеÑÑÑ Ð² бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа. ÐÑли не Ñказано Ð¸Ð¼Ñ Ñайла, бÑÑÐµÑ ÑекÑÑего запÑоÑа копиÑÑеÑÑÑ Ð²Ð¾ вÑеменнÑй Ñайл и оÑкÑÑваеÑÑÑ Ð² ÑедакÑоÑе.ÐаÑем новÑй бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа повÑоÑно анализиÑÑеÑÑÑ ÑоглаÑно обÑÑнÑм пÑавилам psql, пÑи ÑÑом веÑÑ Ð±ÑÑÐµÑ ÑаÑÑмаÑÑиваеÑÑÑ ÐºÐ°Ðº одна ÑÑÑока. (Таким обÑазом, ÑÑо не Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑкÑипÑов. ÐÐ»Ñ ÑкÑипÑов иÑполÑзÑйÑе
\i.) ÐÑли запÑÐ¾Ñ Ð·Ð°ÐºÐ°Ð½ÑиваеÑÑÑ (или ÑодеÑжиÑ) ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой, он немедленно вÑполнÑеÑÑÑ. РпÑоÑивном ÑлÑÑае он пÑоÑÑо бÑÐ´ÐµÑ Ð¶Ð´Ð°ÑÑ Ð² бÑÑеÑе запÑоÑа. ÐведиÑе ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или\gÐ´Ð»Ñ Ð¾ÑпÑавки на вÑполнение или\rÐ´Ð»Ñ Ð¾ÑменÑ.ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð¸ÑиониÑоваÑÑ ÐºÑÑÑÐ¾Ñ Ð½Ð° ÑказаннÑÑ ÑÑÑÐ¾ÐºÑ Ñайла или бÑÑеÑа запÑоÑа. ÐбÑаÑиÑе внимание, ÑÑо еÑли Ñказан один аÑгÑÐ¼ÐµÐ½Ñ Ð¸ он ÑиÑловой, psql пÑедполагаеÑ, ÑÑо ÑÑо Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, а не Ð¸Ð¼Ñ Ñайла.
ÐодÑказка
Ðак наÑÑÑоиÑÑ ÑедакÑÐ¾Ñ Ð¸ измениÑÑ ÐµÐ³Ð¾ поведение, ÑаÑÑказÑваеÑÑÑ Ð² Ñазделе ÐеÑеменнÑе окÑÑжениÑ.
\echoÑекÑÑ[ ... ]ÐеÑаÑÐ°ÐµÑ Ð°ÑгÑменÑÑ Ð² ÑÑандаÑÑнÑй вÑвод, ÑазделÑÑ Ð¸Ñ Ð¾Ð´Ð½Ð¸Ð¼ пÑобелом и добавлÑÑ Ð² конÑе пеÑевод ÑÑÑоки. Ðоманда полезна Ð´Ð»Ñ ÑоÑмиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñвода из ÑкÑипÑов. ÐапÑимеÑ:
=>
\echo `date`Tue Oct 26 21:40:57 CEST 1999ÐÑли пеÑвÑй аÑгÑменÑ
-nбез кавÑÑек, Ñо пеÑевод ÑÑÑоки в конÑе не ÑÑавиÑÑÑ.ÐодÑказка
ÐÑли иÑполÑзÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
\oÐ´Ð»Ñ Ð¿ÐµÑенапÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñвода запÑоÑов, возможно, ÑледÑÐµÑ Ð¿ÑименÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\qechoвмеÑÑо ÑÑой.\ef [опиÑание_ÑÑнкÑии[номеÑ_ÑÑÑоки]]ÐÑа команда Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¾Ð¿Ñеделение заданной ÑÑнкÑии в ÑоÑме
CREATE OR REPLACE FUNCTIONи оÑпÑавлÑÐµÑ ÐµÐ³Ð¾ на ÑедакÑиÑование. РедакÑиÑование оÑÑÑеÑÑвлÑеÑÑÑ Ñаким же обÑазом, как и длÑ\edit. ÐоÑле вÑÑ Ð¾Ð´Ð° из ÑедакÑоÑа изменÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° бÑÐ´ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² бÑÑеÑе запÑоÑа. ÐведиÑе ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или\gÐ´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸\rÐ´Ð»Ñ Ð¾ÑменÑ.ÐÐ»Ñ ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑолÑко Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ð¸ аÑгÑменÑÑ, напÑимеÑ
foo(integer, text). Ð¢Ð¸Ð¿Ñ Ð°ÑгÑменÑов Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ, еÑли ÑÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÐµÐµ Ñем одна ÑÑнкÑÐ¸Ñ Ñ Ñем же именем.ÐÑли ÑÑнкÑÐ¸Ñ Ð½Ðµ Ñказана, Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑкÑÑваеÑÑÑ Ð¿ÑÑÑÐ°Ñ Ð·Ð°Ð³Ð¾Ñовка
CREATE FUNCTION.ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð·Ð¸ÑиониÑоваÑÑ ÐºÑÑÑÐ¾Ñ Ð½Ð° ÑказаннÑÑ ÑÑÑÐ¾ÐºÑ Ñела ÑÑнкÑии. (ÐбÑаÑиÑе внимание, ÑÑо Ñело ÑÑнкÑии обÑÑно не наÑинаеÑÑÑ Ð½Ð° пеÑвой ÑÑÑоке Ñайла).
ÐодÑказка
Ðак наÑÑÑоиÑÑ ÑедакÑÐ¾Ñ Ð¸ измениÑÑ ÐµÐ³Ð¾ поведение, ÑаÑÑказÑваеÑÑÑ Ð² Ñазделе ÐеÑеменнÑе окÑÑжениÑ.
\encoding [кодиÑовка]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð½Ð°Ð±Ð¾Ñа Ñимволов на клиенÑе. Ðез аÑгÑменÑа команда показÑÐ²Ð°ÐµÑ ÑекÑÑÑÑ ÐºÐ¾Ð´Ð¸ÑовкÑ.
\errverboseÐовÑоÑÑÐµÑ Ð¿Ð¾Ñледнее ÑеÑвеÑное ÑообÑение об оÑибке Ñ Ð¼Ð°ÐºÑималÑнÑм ÑÑовнем деÑализаÑии, как еÑли Ð±Ñ Ð¿ÐµÑеменнаÑ
VERBOSITYимела знаÑениеverbose, аSHOW_CONTEXTâalways.\ev [имÑ_пÑедÑÑавлениÑ[номеÑ_ÑÑÑоки]]ÐÑа команда Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸ оÑкÑÑÐ²Ð°ÐµÑ Ð½Ð° ÑедакÑиÑование опÑеделение Ñказанного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑоÑме командÑ
CREATE OR REPLACE VIEW. РедакÑиÑование оÑÑÑеÑÑвлÑеÑÑÑ Ñак же, как и Ñ\edit. ÐоÑле вÑÑ Ð¾Ð´Ð° из ÑедакÑоÑа изменÑÐ½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° оÑÑаÑÑÑÑ Ð² бÑÑеÑе запÑоÑа; введиÑе ÑоÑÐºÑ Ñ Ð·Ð°Ð¿ÑÑой или\g, ÑÑÐ¾Ð±Ñ Ð²ÑполниÑÑ ÐµÑ, либо\r, ÑÑÐ¾Ð±Ñ ÐµÑ ÑбÑоÑиÑÑ.ÐÑли пÑедÑÑавление не Ñказано, Ð´Ð»Ñ ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑкÑÑваеÑÑÑ Ð¿ÑÑÑÐ°Ñ Ð·Ð°Ð³Ð¾Ñовка
CREATE VIEW.ÐÑли Ñказан Ð½Ð¾Ð¼ÐµÑ ÑÑÑоки, psql ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ ÐºÑÑÑÐ¾Ñ Ð½Ð° заданнÑÑ ÑÑÑÐ¾ÐºÑ Ð² опÑеделении пÑедÑÑавлениÑ.
\f [ÑÑÑока]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода запÑоÑов. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð²ÐµÑÑикалÑÐ½Ð°Ñ ÑеÑÑа (
|). См. Ñакже\psetÐ´Ð»Ñ ÑнивеÑÑалÑного ÑпоÑоба наÑÑÑойки паÑамеÑÑов вÑвода.\g [имÑ_Ñайла]\g [ |команда]ÐÑпÑавлÑÐµÑ ÑодеÑжимое бÑÑеÑа ÑекÑÑего запÑоÑа на ÑеÑÐ²ÐµÑ Ð´Ð»Ñ Ð²ÑполнениÑ, Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑезÑлÑÑаÑа запÑоÑа в Ñайле
имÑ_Ñайлаили пеÑенапÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñвода в ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñки ÐСкоманда. ÐÑвод напÑавлÑеÑÑÑ Ð² Ñайл или командÑ, ÑолÑко еÑли запÑÐ¾Ñ ÑÑпеÑно веÑнÑл 0 или более ÑÑÑок. ÐÑого не пÑоиÑÑ Ð¾Ð´Ð¸Ñ, еÑли запÑÐ¾Ñ Ð·Ð°Ð²ÐµÑÑилÑÑ Ð½ÐµÑдаÑно или вÑполнÑлаÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°, не возвÑаÑаÑÑÐ°Ñ Ð´Ð°Ð½Ð½Ñе.\gбез аÑгÑменÑов, по ÑÑÑи, ÑквиваленÑен ÑоÑке Ñ Ð·Ð°Ð¿ÑÑой.\gÑ Ð°ÑгÑменÑом ÑвлÑеÑÑÑ Ñазовой алÑÑеÑнаÑивой команде\o.\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, Ñо вмеÑÑо пÑиÑÐ²Ð¾ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÑÑÐ°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑдалÑеÑÑÑ.
ÐÑли запÑÐ¾Ñ Ð·Ð°Ð²ÐµÑÑаеÑÑÑ Ð¾Ñибкой или не возвÑаÑÐ°ÐµÑ Ð¾Ð´Ð½Ñ ÑÑÑокÑ, Ñо никакие пеÑеменнÑе не менÑÑÑÑÑ.
\hили\help[команда]ÐÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ð´ÑÐºÐ°Ð·ÐºÑ Ð¿Ð¾ ÑинÑакÑиÑÑ Ñказанной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SQL. ÐÑли
командане Ñказана, Ñо psql вÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок вÑÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð´Ð¾ÑÑÑпна ÑпÑавка. ÐÑли в каÑеÑÑве command Ñказана звÑздоÑка (*), Ñо вÑводиÑÑÑ ÑпÑавка по вÑем командам SQL.ÐÑимеÑание
ÐÐ»Ñ ÑпÑоÑÐµÐ½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° командÑ, ÑоÑÑоÑÑие из неÑколÑÐºÐ¸Ñ Ñлов, можно не заклÑÑаÑÑ Ð² кавÑÑки. Таким обÑазом, можно пÑоÑÑо пиÑаÑÑ
\help alter table.\Hили\htmlÐклÑÑÐ°ÐµÑ Ð²Ñвод запÑоÑов в ÑоÑмаÑе HTML. ÐÑли ÑоÑÐ¼Ð°Ñ HTML Ñже вклÑÑÑн, пÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿ÐµÑеклÑÑение обÑаÑно на вÑÑовненнÑй ÑоÑмаÑ. ÐÑа команда иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑовмеÑÑимоÑÑи и ÑдобÑÑва, но в опиÑании
\psetÐ²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð¾ дÑÑÐ³Ð¸Ñ Ð²Ð°ÑианÑÐ°Ñ Ð²Ñвода.\iили\includeимÑ_ÑайлаЧиÑÐ°ÐµÑ Ð²Ð²Ð¾Ð´ из Ñайла
имÑ_Ñайлаи вÑполнÑÐµÑ ÐµÐ³Ð¾, как бÑдÑо он бÑл набÑан на клавиаÑÑÑе.ÐÑли
имÑ_Ñайлазадано как-(минÑÑ), ÑиÑаеÑÑÑ ÑÑандаÑÑнÑй ввод до пÑизнака конÑа Ñайла или до меÑакомандÑ\q. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ Ð´Ð»Ñ ÑовмеÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑеÑакÑивного ввода Ñо вводом команд из Ñайлов. ÐамеÑÑÑе, ÑÑо пÑи ÑÑом поведение Readline бÑÐ´ÐµÑ Ð¿ÑименÑÑÑÑÑ, ÑолÑко еÑли оно акÑивно на внеÑнем ÑÑовне.ÐÑимеÑание
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе видеÑÑ ÑÑÑоки Ñайла на ÑкÑане по меÑе Ð¸Ñ ÑÑениÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑÑÑановиÑÑ Ð´Ð»Ñ Ð¿ÐµÑеменной
ECHOзнаÑениеall.\irили\include_relativeимÑ_ÑайлаÐоманда
\irÐ¿Ð¾Ñ Ð¾Ð¶Ð° на\i, но по-ÑÐ°Ð·Ð½Ð¾Ð¼Ñ Ð¸Ð½ÑеÑпÑеÑиÑÑÐµÑ Ð¾ÑноÑиÑелÑнÑе имена Ñайлов. ÐÑи вÑполнении в инÑеÑакÑивном Ñежиме две ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð²ÐµÐ´ÑÑ ÑÐµÐ±Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ð¾. Ðднако пÑи вÑзове из ÑкÑипÑа\irинÑеÑпÑеÑиÑÑÐµÑ Ð¸Ð¼ÐµÐ½Ð° Ñайлов оÑноÑиÑелÑно каÑалога, в коÑоÑом ÑаÑположен ÑкÑипÑ, а не ÑекÑÑего ÑабоÑего каÑалога.\l[+]или\list[+] [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок баз даннÑÑ Ð½Ð° ÑеÑвеÑе и показÑÐ²Ð°ÐµÑ Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð°, владелÑÑев, кодиÑÐ¾Ð²ÐºÑ Ð½Ð°Ð±Ð¾Ñа Ñимволов и пÑава доÑÑÑпа. ÐÑли Ñказан
Ñаблон, вÑводÑÑÑÑ ÑолÑко Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ. ÐÑи добавлении+к команде Ñакже оÑобÑажаÑÑÑÑ: ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑаблиÑное пÑоÑÑÑанÑÑво по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ опиÑание. (ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑазмеÑе доÑÑÑпна ÑолÑко Ð´Ð»Ñ Ð±Ð°Ð· даннÑÑ , к коÑоÑÑм ÑекÑÑий полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ.)\lo_exportoid_ÐÐимÑ_ÑайлаЧиÑÐ°ÐµÑ Ð±Ð¾Ð»ÑÑой обÑÐµÐºÑ Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм
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ÐоказÑÐ²Ð°ÐµÑ ÑпиÑок вÑÐµÑ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов Postgres Pro, Ñ ÑанÑÑÐ¸Ñ ÑÑ Ð² базе даннÑÑ , вмеÑÑе Ñ Ð¿ÑедоÑÑавленнÑми комменÑаÑиÑми.
\lo_unlinkoid_ÐÐУдалÑÐµÑ Ð±Ð¾Ð»ÑÑой обÑÐµÐºÑ Ñ
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, Ñо ÑÑо Ñакже влиÑÐµÑ Ð½Ð° вÑвод в Ñайл или в дÑÑгÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑеÑез канал.expanded(илиx)Указанное
знаÑениедопÑÑÐºÐ°ÐµÑ Ð²Ð°ÑианÑÑonилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ ÑазвÑÑнÑÑÑй Ñежим, либоauto. ÐÑлизнаÑениеопÑÑено, команда вклÑÑаеÑ/оÑклÑÑÐ°ÐµÑ Ñежим. Ðогда ÑазвÑÑнÑÑÑй Ñежим вклÑÑÑн, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑа вÑводÑÑÑÑ Ð² две колонки: Ð¸Ð¼Ñ ÑÑолбÑа в левой, даннÑе в пÑавой. ÐÑÐ¾Ñ Ñежим полезен, еÑли даннÑе не помеÑаÑÑÑÑ Ð½Ð° ÑкÑане в обÑÑном «гоÑизонÑалÑном» Ñежиме. ÐÑи вÑбоÑеautoÑазвÑÑнÑÑÑй Ñежим иÑполÑзÑеÑÑÑ, когда ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÑколÑко ÑÑолбÑов и по ÑиÑине не ÑмеÑаеÑÑÑ Ð½Ð° ÑкÑане; в пÑоÑивном ÑлÑÑае иÑполÑзÑеÑÑÑ Ð¾Ð±ÑÑнÑй Ñежим. РежимautoÑаÑпÑоÑÑÑанÑеÑÑÑ ÑолÑко на ÑоÑмаÑÑalignedиwrapped. С дÑÑгими ÑоÑмаÑами он вÑегда ÑавнознаÑен оÑклÑÑÑÐ½Ð½Ð¾Ð¼Ñ ÑоÑÑоÑниÑ.fieldsepУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода запÑоÑов. Таким обÑазом, можно ÑоÑмиÑоваÑÑ Ð²Ñвод, в коÑоÑом знаÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑÐ°Ð·Ð´ÐµÐ»ÐµÐ½Ñ ÑабÑлÑÑией или запÑÑÑми. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿ÑедпоÑÑиÑелÑнÑм Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² дÑÑÐ³Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ð°Ñ . ÐÐ»Ñ ÑÑÑановки Ñимвола ÑабÑлÑÑии в каÑеÑÑве ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ введиÑе
\pset fieldsep '\t'. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑеÑÑÑ Ð²ÐµÑÑикалÑÐ½Ð°Ñ ÑеÑÑа ('|').fieldsep_zeroУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ Ð´Ð»Ñ Ð½ÐµÐ²ÑÑовненного Ñежима вÑвода в нÑлевой байÑ.
footerÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð´Ð²Ð° ваÑианÑа
знаÑениÑ:onилиoff, коÑоÑÑе вклÑÑаÑÑ Ð¸Ð»Ð¸ оÑклÑÑаÑÑ Ð²Ñвод ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом вÑбÑаннÑÑ Ð·Ð°Ð¿Ð¸Ñей(. ÐÑлиnÑÑÑок)знаÑениене Ñказано, Ñо команда пеÑеклÑÑÐ°ÐµÑ ÑекÑÑее знаÑение вonилиoff.formatУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾Ð´Ð¸Ð½ из ÑледÑÑÑÐ¸Ñ ÑоÑмаÑов вÑвода:
unaligned,aligned,wrapped,html,asciidoc,latex(иÑполÑзÑеÑtabular),latex-longtableилиtroff-ms. ÐопÑÑкаеÑÑÑ ÑокÑаÑение Ñлова до ÑникалÑного знаÑениÑ.Ð ÑоÑмаÑе
unalignedвÑе ÑÑолбÑÑ ÑазмеÑаÑÑÑÑ Ð½Ð° одной ÑÑÑоке и оÑделÑÑÑÑÑ Ð´ÑÑг Ð¾Ñ Ð´ÑÑга ÑекÑÑим ÑазделиÑелем полей. ÐÑо полезно Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²Ñвода, коÑоÑÑй бÑдÑÑ ÑиÑаÑÑ Ð´ÑÑгие пÑогÑÐ°Ð¼Ð¼Ñ (напÑимеÑ, Ð´Ð»Ñ Ð²Ñвода даннÑÑ Ñ ÑазделиÑелем Tab или ÑеÑез запÑÑÑÑ).ФоÑмаÑ
alignedÑÑо ÑÑандаÑÑнÑй, ÑдобоÑиÑаемÑй, Ñ Ð¾ÑоÑо оÑÑоÑмаÑиÑованнÑй ÑекÑÑовÑй вÑвод. ÐÑполÑзÑеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ.ФоÑмаÑ
wrappedÐ¿Ð¾Ñ Ð¾Ð¶ наaligned, но пеÑеноÑÐ¸Ñ Ð´Ð»Ð¸Ð½Ð½Ñе знаÑÐµÐ½Ð¸Ñ ÑÑолбÑов на новÑе ÑÑÑоки, ÑÑÐ¾Ð±Ñ Ð¾Ð±Ñий вÑвод помеÑÑилÑÑ Ð² заданнÑÑ ÑиÑинÑ. Ðадание ÑиÑÐ¸Ð½Ñ Ð²Ñвода опиÑано в паÑамеÑÑеcolumns. ÐбÑаÑиÑе внимание, ÑÑо psql не бÑÐ´ÐµÑ Ð¿ÑÑаÑÑÑÑ Ð¿ÐµÑеноÑиÑÑ Ð½Ð° новÑе ÑÑÑоки заголовки ÑÑолбÑов. ÐоÑÑÐ¾Ð¼Ñ ÑоÑмаÑwrappedÑабоÑÐ°ÐµÑ Ñак же, какalignedеÑли обÑÐ°Ñ ÑиÑина, ÑÑебÑÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð²ÑÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð² ÑÑолбÑов, пÑевÑÑÐ°ÐµÑ ÑÑÑановленнÑÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑиÑинÑ.ФоÑмаÑÑ
html,asciidoc,latex,latex-longtableиtroff-msвÑводÑÑ ÑаблиÑÑ, коÑоÑÑе пÑедназнаÑÐµÐ½Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² докÑменÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑооÑвеÑÑÑвÑÑÑего ÑзÑка ÑазмеÑки. Ðни не ÑвлÑÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑеннÑми докÑменÑами! ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ðµ кÑиÑиÑно Ð´Ð»Ñ HTML, но Ð´Ð»Ñ LaTeX обÑзаÑелен докÑменÑ-конÑейнеÑ. ФоÑмаÑlatex-longtableÑакже ÑÑебÑÐµÑ Ð½Ð°Ð»Ð¸ÑÐ¸Ñ Ð¿Ð°ÐºÐµÑов LaTeXlongtableи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ÑÑÑановлена, Ñо даннÑе пеÑедаÑÑÑÑ Ð² ÑказаннÑÑ Ð¿ÑогÑаммÑ. РпÑоÑивном ÑлÑÑае иÑполÑзÑеÑÑÑ Ð¿Ð»Ð°ÑÑоÑмозавиÑÐ¸Ð¼Ð°Ñ Ð¿ÑогÑамма по ÑмолÑÐ°Ð½Ð¸Ñ (напÑимеÑ,more).ÐÑли
pagerÐ¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеoff, пÑогÑамма поÑÑÑаниÑного пÑоÑмоÑÑа (поÑÑÑаниÑник) не иÑполÑзÑеÑÑÑ. ÐÑлиpagerÐ¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеon, ÑÑа пÑогÑамма иÑполÑзÑеÑÑÑ Ð¿Ñи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи, Ñ. е. когда вÑвод на ÑеÑминал не помеÑаеÑÑÑ Ð½Ð° ÑкÑане. ÐаÑамеÑÑ pager Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ð·Ð½Ð°Ñениеalways, пÑи ÑÑом поÑÑÑаниÑник бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð²Ñегда, незавиÑимо Ð¾Ñ Ñого, помеÑаеÑÑÑ Ð²Ñвод на ÑкÑан ÑеÑминала или неÑ. Ðоманда\pset pagerбез ÑказаниÑзнаÑениÑпеÑеклÑÑÐ°ÐµÑ Ð²Ð°ÑианÑÑonиoff.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(двойной).
ÐллÑÑÑÑаÑÐ¸Ñ Ñого, как могÑÑ Ð²ÑглÑдеÑÑ ÑазлиÑнÑе ÑоÑмаÑÑ, можно ÑвидеÑÑ Ð² Ñазделе ÐÑимеÑÑ.
ÐодÑказка
ÐÐ»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ Ð¿Ð°ÑамеÑÑов
\psetеÑÑÑ ÐºÐ¾ÑоÑкие командÑ. См.\a,\C,\f,\H,\t,\Tи\x.\qили\quitÐÑÑ Ð¾Ð´ из psql. ÐÑи иÑполÑзовании в ÑкÑипÑе пÑекÑаÑаеÑÑÑ ÑолÑко вÑполнение ÑÑого ÑкÑипÑа.
\qechoÑекÑÑ[ ... ]ÐÑа команда иденÑиÑна
\echoза иÑклÑÑением Ñого, ÑÑо вÑвод бÑÐ´ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑваÑÑÑÑ Ð² канал вÑвода запÑоÑов, ÑÑÑановленнÑй\o.\rили\resetСбÑаÑÑÐ²Ð°ÐµÑ (оÑиÑаеÑ) бÑÑÐµÑ Ð·Ð°Ð¿ÑоÑа.
\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. ÐпÑеделение пеÑаÑаеÑÑÑ Ð² ÑекÑÑий канал вÑвода запÑоÑов, ÑÑÑановленнÑй\o.ÐÐ»Ñ ÑÑнкÑии Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑолÑко Ð¸Ð¼Ñ Ð¸Ð»Ð¸ Ð¸Ð¼Ñ Ð¸ аÑгÑменÑÑ, напÑимеÑ
foo(integer, text). Ð¢Ð¸Ð¿Ñ Ð°ÑгÑменÑов Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñ, еÑли ÑÑÑеÑÑвÑÐµÑ Ð±Ð¾Ð»ÐµÐµ Ñем одна ÑÑнкÑÐ¸Ñ Ñ Ñем же именем.ÐÑи добавлении
+к команде ÑÑÑоки вÑвода нÑмеÑÑÑÑÑÑ, пеÑÐ²Ð°Ñ ÑÑÑока Ñела ÑÑнкÑии полÑÑÐ¸Ñ Ð½Ð¾Ð¼ÐµÑ 1.\sv[+]имÑ_пÑедÑÑавлениÑÐÐ·Ð²Ð»ÐµÐºÐ°ÐµÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ вÑÐ²Ð¾Ð´Ð¸Ñ Ð¾Ð¿Ñеделение Ñказанного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² ÑоÑме командÑ
CREATE OR REPLACE VIEW. ÐпÑеделение вÑводиÑÑÑ Ð² ÑекÑÑий канал вÑвода запÑоÑов, ÑÑÑановленнÑй\o.ÐÑи добавлении
+к команде ÑÑÑоки вÑвода нÑмеÑÑÑÑÑÑ, наÑÐ¸Ð½Ð°Ñ Ñ 1.\tÐклÑÑаеÑ/вÑклÑÑÐ°ÐµÑ Ð¾ÑобÑажение имÑн ÑÑолбÑов и ÑезÑлÑÑиÑÑÑÑей ÑÑÑоки Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑвом вÑбÑаннÑÑ Ð·Ð°Ð¿Ð¸Ñей Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов. ÐÑа команда ÑквиваленÑна
\pset tuples_onlyи пÑедоÑÑавлена Ð´Ð»Ñ ÑдобÑÑва.\TпаÑамеÑÑÑ_ÑаблиÑÑУÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð°ÑÑибÑÑÑ, коÑоÑÑе бÑдÑÑ Ð¿Ð¾Ð¼ÐµÑÐµÐ½Ñ Ð² Ñег
tableпÑи ÑоÑмаÑе вÑвода HTML. ÐÑа команда ÑквиваленÑна\pset tableattr.паÑамеÑÑÑ_ÑаблиÑÑ\timing [on|off]ÐклÑÑаеÑ/оÑклÑÑÐ°ÐµÑ Ð¾ÑобÑажение вÑемени вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ SQL в миллиÑекÑÐ½Ð´Ð°Ñ . Ðез паÑамеÑÑа пеÑеклÑÑÐ°ÐµÑ ÑекÑÑий Ñежим оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñемени вÑполнениÑ.
\unsetимÑУдалÑÐµÑ psql пеÑеменнÑÑ
имÑ.\wили\writeимÑ_Ñайла\wили\write|командаÐÑÐ²Ð¾Ð´Ð¸Ñ Ð±ÑÑÐµÑ ÑекÑÑего запÑоÑа в Ñайл
имÑ_Ñайлаили пеÑедаÑÑ Ð² ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÐСкоманда.\watch [ÑекÑндÑ]ÐÑа команда многокÑаÑно вÑполнÑÐµÑ ÑекÑÑий запÑÐ¾Ñ Ð² бÑÑеÑе (как
\g), пока не бÑÐ´ÐµÑ Ð¿ÑеÑвана или не Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ Ð¾Ñибка. ÐÑгÑÐ¼ÐµÐ½Ñ Ð·Ð°Ð´Ð°ÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑекÑнд Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð²ÑполнениÑми запÑоÑа (по ÑмолÑÐ°Ð½Ð¸Ñ 2). РезÑлÑÑÐ°Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ запÑоÑа вÑводиÑÑÑ Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¾Ð¼, вклÑÑаÑÑим ÑÑÑокÑ\pset title(еÑли она задана), вÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑÑка запÑоÑа и инÑеÑвал задеÑжки.\x [on|off|auto]УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸Ð»Ð¸ пеÑеклÑÑÐ°ÐµÑ Ñежим ÑазвÑÑнÑÑого вÑвода ÑаблиÑÑ. ÐÑо ÑквиваленÑно
\pset expanded.\z [Ñаблон]ÐÑÐ²Ð¾Ð´Ð¸Ñ ÑпиÑок ÑаблиÑ, пÑедÑÑавлений и поÑледоваÑелÑноÑÑей Ñ Ð¸Ñ Ð¿Ñавами доÑÑÑпа. ÐÑли Ñказан
Ñаблон, оÑобÑажаÑÑÑÑ ÑолÑко ÑаблиÑÑ, пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ поÑледоваÑелÑноÑÑи, имена коÑоÑÑÑ ÑооÑвеÑÑÑвÑÑÑ ÐµÐ¼Ñ.ÐÑо пÑевдоним длÑ
\dp(«показаÑÑ Ð¿Ñава доÑÑÑпа»).\! [команда]ÐÑполнÑеÑ
командÑÐС. Ðез ÑказаниÑкомандÑзапÑÑÐºÐ°ÐµÑ Ð¾ÑделÑнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½ÑÑ Ð¾Ð±Ð¾Ð»Ð¾ÑÐºÑ ÐС. ÐоÑледÑÑÑие аÑгÑменÑÑ Ð½Ðµ инÑеÑпÑеÑиÑÑÑÑÑÑ, ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ð¾Ð±Ð¾Ð»Ð¾Ñка ÐС ÑÐ²Ð¸Ð´Ð¸Ñ Ð¸Ñ ÐºÐ°Ðº еÑÑÑ. Ð ÑаÑÑноÑÑи, не пÑименÑÑÑÑÑ Ð¿Ñавила подÑÑановки пеÑеменнÑÑ Ð¸ ÑкÑаниÑование Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой.\? [Ñема]ÐоказÑÐ²Ð°ÐµÑ ÑпÑавоÑнÑÑ Ð¸Ð½ÑоÑмаÑиÑ. ÐеобÑзаÑелÑнÑй паÑамеÑÑ
Ñема(по ÑмолÑаниÑcommands) вÑбиÑÐ°ÐµÑ Ð¾Ð¿Ð¸Ñание инÑеÑеÑÑÑÑей ÑаÑÑи psql:commandsопиÑÑÐ²Ð°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql Ñ Ð¾Ð±ÑаÑной коÑой ÑеÑÑой;optionsопиÑÑÐ²Ð°ÐµÑ Ð¿Ð°ÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки, коÑоÑÑе можно пеÑедаÑÑ psql; аvariablesвÑдаÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ пеÑеменнÑм конÑигÑÑаÑии psql.
Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ Ð¿Ð¾Ð¸Ñка
РазлиÑнÑе \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. ШаблонÑ, не ÑодеÑжаÑÐµÐ¼Ñ ÑоÑкÑ, могÑÑ ÑооÑвеÑÑÑвоваÑÑ ÑолÑко обÑекÑÑ ÑекÑÑей ÑÑ
емÑ. ÐпÑÑÑ Ð¶Ðµ, ÑоÑка внÑÑÑи двойнÑÑ
кавÑÑек ÑеÑÑÐµÑ ÑÐ²Ð¾Ñ ÑпеÑиалÑное знаÑение.
ÐпÑÑнÑе полÑзоваÑели могÑÑ Ð¸ÑполÑзоваÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑегÑлÑÑнÑÑ
вÑÑажений, Ñакие как клаÑÑÑ Ñимволов. ÐапÑÐ¸Ð¼ÐµÑ [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 бÑкв (и, возможно, ÑиÑÑ Ð¸ знаков подÑÑÑкиваниÑ). ÐÐ»Ñ Ð¼Ð°ÐºÑималÑной ÑовмеÑÑимоÑÑи в бÑдÑÑем ÑÑаÑайÑеÑÑ Ð½Ðµ иÑполÑзоваÑÑ Ñакие имена Ð´Ð»Ñ ÑобÑÑвеннÑÑ Ð¿ÐµÑеменнÑÑ . Ðалее Ð¸Ð´ÐµÑ ÑпиÑок пеÑеменнÑÑ , обÑабаÑÑваемÑÑ Ð¾ÑобÑм обÑазом.
-
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. Со знаÑениемqueries, psql пеÑаÑÐ°ÐµÑ ÐºÐ°Ð¶Ð´Ñй запÑоÑ, оÑпÑавленнÑй ÑеÑвеÑÑ, в ÑÑандаÑÑнÑй вÑвод. ÐÑÐ¾Ð¼Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ»ÑÑ-e. Со знаÑениемerrorsв ÑÑандаÑÑнÑй канал оÑибок вÑдаÑÑÑÑ ÑолÑко запÑоÑÑ, вÑзвавÑие оÑибки. ÐÐ¼Ñ ÑооÑвеÑÑÑвÑÐµÑ ÐºÐ»ÑÑ-b. Ð ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸ Ñ Ð²Ð°ÑианÑомnone(либо дÑÑгим ваÑианÑом, кÑоме пеÑеÑиÑленнÑÑ ) запÑоÑÑ Ð½Ðµ вÑводÑÑÑÑ.ECHO_HIDDENÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑÑановлена в знаÑение
on, Ñо пÑи вÑполнении меÑакоманд, запÑаÑиваÑÑÐ¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑнаÑала бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ ÑекÑÑ Ð·Ð°Ð¿ÑоÑа. ÐÑо позволÑÐµÑ Ð¸Ð·ÑÑаÑÑ Ð²Ð½ÑÑÑеннее ÑÑÑÑойÑÑво Postgres Pro и ÑеализовÑваÑÑ Ð¿Ð¾Ñ Ð¾Ð¶ÑÑ ÑÑнкÑионалÑноÑÑÑ Ð² ÑÐ²Ð¾Ð¸Ñ Ð¿ÑогÑÐ°Ð¼Ð¼Ð°Ñ . (ЧÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ñакое поведение пÑи ÑÑаÑÑе psql, иÑполÑзÑйÑе паÑамеÑÑ-E.) ÐÑи ÑÑÑановке пеÑеменной в знаÑениеnoexecзапÑоÑÑ Ð¿ÑоÑÑо оÑобÑажаÑÑÑÑ, но не оÑпÑавлÑÑÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ Ð¸ не вÑполнÑÑÑÑÑ.ENCODINGСодеÑÐ¶Ð¸Ñ ÑекÑÑÑÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ð½Ð°Ð±Ð¾Ñа Ñимволов клиенÑа.
FETCH_COUNTÐÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑÑановлена в Ñелое знаÑение > 0, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑов
SELECTизвлекаÑÑÑÑ Ð¸Ð· Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ оÑобÑажаÑÑÑÑ Ð³ÑÑппами Ñ Ñаким колиÑеÑÑвом ÑÑÑок, в оÑлиÑие Ð¾Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ, когда пеÑед оÑобÑажением ÑезÑлÑÑиÑÑÑÑий Ð½Ð°Ð±Ð¾Ñ Ð½Ð°ÐºÐ°Ð¿Ð»Ð¸Ð²Ð°ÐµÑÑÑ Ñеликом. ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾Ð³ÑаниÑеннÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð°Ð¼ÑÑи незавиÑимо Ð¾Ñ ÑазмеÑа вÑбоÑки. ÐÑи вклÑÑении ÑÑой ÑÑнкÑионалÑноÑÑи обÑÑно иÑполÑзÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¾Ñ 100 до 1000. ÐмейÑе в видÑ, ÑÑо запÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð²ÐµÑÑиÑÑÑÑ Ð¾Ñибкой поÑле оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½ÐµÐºÐ¾ÑоÑого колиÑеÑÑва ÑÑÑок.ÐодÑказка
ХоÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð»Ñбой ÑоÑÐ¼Ð°Ñ Ð²Ñвода, ÑоÑÐ¼Ð°Ñ Ð¿Ð¾ ÑмолÑаниÑ
alignedкак пÑавило вÑглÑÐ´Ð¸Ñ Ñ Ñже, поÑÐ¾Ð¼Ñ ÑÑо ÐºÐ°Ð¶Ð´Ð°Ñ Ð³ÑÑппа поFETCH_COUNTÑÑÑок ÑоÑмаÑиÑÑеÑÑÑ Ð¾ÑделÑно, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи к Ñазной ÑиÑине ÑÑолбÑов в ÑазнÑÑ Ð³ÑÑÐ¿Ð¿Ð°Ñ . ÐÑÑалÑнÑе ÑоÑмаÑÑ Ð²Ñвода ÑабоÑаÑÑ Ð»ÑÑÑе.HISTCONTROLÐÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение
ignorespace, ÑÑÑоки, наÑинаÑÑиеÑÑ Ñ Ð¿Ñобела, не ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² иÑÑоÑии. ÐÑли она Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñениеignoredups, в иÑÑоÑÐ¸Ñ Ð½Ðµ добавлÑÑÑÑÑ ÑÑÑоки, коÑоÑÑе в ней Ñже еÑÑÑ. ÐнаÑениеignorebothобÑединÑÐµÑ ÑÑи два ваÑианÑа. Ð ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸ Ñ Ð²Ð°ÑианÑомnone(либо дÑÑгим ваÑианÑом, кÑоме пеÑеÑиÑленнÑÑ ) в иÑÑоÑии ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð²Ñе ÑÑÑоки, ÑÑиÑÑваемÑе в инÑеÑакÑивном Ñежиме.ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HISTFILEÐÐ¼Ñ Ñайла Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ÑÑоÑии команд. ÐнаÑение по ÑмолÑаниÑ
~/.psql_history. ÐапÑимеÑ, ÑÑÑановив:\set HISTFILE ~/.psql_history- :DBNAME
в
~/.psqlrc, psql бÑÐ´ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð¾ÑделÑнÑÑ Ð¸ÑÑоÑÐ¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HISTSIZEÐолиÑеÑÑво команд Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² иÑÑоÑии. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ 500.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
HOSTÐÐ¼Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа, где ÑабоÑÐ°ÐµÑ ÑеÑÐ²ÐµÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑÐ¾Ð¼Ñ Ð²Ñ ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑенÑ. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑдалиÑÑ.
IGNOREEOFÐÑли не ÑÑÑановлена, Ñимвол конÑа Ñайла (EOF, обÑÑно Control+D), пеÑеданнÑй в инÑеÑакÑивном ÑеанÑе psql, завеÑÑÐ¸Ñ Ð¿Ñиложение. ÐÑли задано ÑиÑловое знаÑение, Ñо именно Ñакое колиÑеÑÑво Ñимволов EOF бÑÐ´ÐµÑ Ð¿ÑоигноÑиÑовано, пÑежде Ñем пÑиложение завеÑÑÐ¸Ñ ÑабоÑÑ. ÐÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑÑановлена, но Ð¸Ð¼ÐµÐµÑ Ð½Ðµ ÑиÑловое знаÑение, подÑазÑмеваеÑÑÑ 10.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ Bash.
LASTOIDСодеÑÐ¶Ð¸Ñ Ð·Ð½Ð°Ñение поÑледнего OID, полÑÑенного командой
INSERTили\lo_import. ÐоÑÑекÑное знаÑение пеÑеменной гаÑанÑиÑÑеÑÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ, пока не бÑÐ´ÐµÑ Ð¾ÑобÑажÑн ÑезÑлÑÑÐ°Ñ ÑледÑÑÑей SQL-командÑ.-
ON_ERROR_ROLLBACK ÐÑи знаÑении
on, еÑли команда в ÑÑанзакÑионном блоке вÑдаÑÑ Ð¾ÑибкÑ, оÑибка игноÑиÑÑеÑÑÑ Ð¸ ÑÑанзакÑÐ¸Ñ Ð¿ÑодолжаеÑÑÑ. ÐÑи знаÑенииinteractiveÑакие оÑибки игноÑиÑÑÑÑÑÑ ÑолÑко в инÑеÑакÑивнÑÑ ÑеÑÑиÑÑ , но не в ÑкÑипÑÐ°Ñ . ÐÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ ÑÑÑановлена или пÑи знаÑенииoffкоманда, вÑзвавÑÐ°Ñ Ð¾ÑÐ¸Ð±ÐºÑ Ð² ÑÑанзакÑионном блоке, оÑменÑÐµÑ Ð²ÑÑ ÑÑанзакÑиÑ. Режим оÑкаÑа ÑÑанзакÑии пÑи возникновении оÑибки обеÑпеÑиваеÑÑÑ Ð²Ñполнением неÑвнÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´SAVEPOINTпеÑед каждой командой в ÑÑанзакÑионном блоке и оÑкаÑом к ÑоÑке ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð² ÑлÑÑае оÑибки.ON_ERROR_STOPÐо ÑмолÑаниÑ, поÑле Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð¾Ñибки обÑабоÑка команд пÑодолжаеÑÑÑ. ÐÑли ÑÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑÑÑановлена в знаÑение
on, обÑабоÑка команд бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ пÑекÑаÑена. РинÑеÑакÑивном Ñежиме psql веÑнÑÑÑÑ Ð² команднÑÑ ÑÑÑокÑ; инаÑе psql пÑекÑаÑÐ¸Ñ ÑабоÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ возвÑаÑа 3, ÑÑÐ¾Ð±Ñ Ð¾ÑлиÑиÑÑ ÑÑÐ¾Ñ ÑлÑÑай Ð¾Ñ ÑаÑалÑнÑÑ Ð¾Ñибок, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ Ð¸ÑполÑзÑеÑÑÑ ÐºÐ¾Ð´ возвÑаÑа 1. РлÑбом ÑлÑÑае вÑполнение вÑÐµÑ Ð·Ð°Ð¿ÑÑеннÑÑ ÑкÑипÑов (вÑÑокоÑÑовневÑй ÑкÑÐ¸Ð¿Ñ Ð¸ лÑбÑе дÑÑгие, коÑоÑÑе он мог запÑÑÑиÑÑ) бÑÐ´ÐµÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ пÑекÑаÑено. ÐÑли вÑÑокоÑÑÐ¾Ð²Ð½ÐµÐ²Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ ÑÑÑока ÑодеÑÐ¶Ð¸Ñ Ð½ÐµÑколÑко SQL-команд, вÑполнение завеÑÑиÑÑÑ Ð½Ð° ÑекÑÑей команде.PORTСодеÑÐ¶Ð¸Ñ Ð¿Ð¾ÑÑ ÑеÑвеÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , к коÑоÑÐ¾Ð¼Ñ Ð²Ñ ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑенÑ. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑдалиÑÑ.
PROMPT1PROMPT2PROMPT3УказÑваÑÑ, как Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑглÑдеÑÑ Ð¿ÑиглаÑÐµÐ½Ð¸Ñ psql. См. ÐаÑÑÑойка пÑиглаÑений.
QUIETУÑÑановка знаÑениÑ
onÑквиваленÑа паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки-q. ÐÑо, веÑоÑÑно, не ÑлиÑком полезно в инÑеÑакÑивном Ñежиме.SHOW_CONTEXTÐÑой пеÑеменной можно пÑиÑвоиÑÑ Ð·Ð½Ð°ÑениÑ
never(никогда),errors(оÑибки) илиalways(вÑегда), опÑеделÑÑÑие, когда в ÑообÑениÑÑ Ñ ÑеÑвеÑа бÑдÑÑ Ð²ÑводиÑÑÑÑ Ð¿Ð¾Ð»ÑÐÐÐТÐÐСТ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑбÑан ваÑианÑerrors(коÑоÑÑй ознаÑаеÑ, ÑÑо конÑекÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ Ð² ÑообÑениÑÑ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ , но не в пÑедÑпÑеждениÑÑ Ð¸ ÑведомлениÑÑ ). ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð½Ðµ дейÑÑвÑеÑ, когда ÑÑÑановлен ÑÑовенÑVERBOSITYterse. (Ðогда вам поÑÑебÑеÑÑÑ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑолÑко ÑÑо вÑданной оÑибки, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð° команда\errverbose.)SINGLELINEУÑÑановка знаÑениÑ
onÑквиваленÑна паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки-S.SINGLESTEPÐÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑквиваленÑна паÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки
-s.USERСодеÑÐ¶Ð¸Ñ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , коÑоÑÑй ÑейÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÑн. УÑÑанавливаеÑÑÑ Ð²ÑÑкий Ñаз пÑи подклÑÑении к базе даннÑÑ (в Ñом ÑиÑле пÑи ÑÑаÑÑе пÑогÑаммÑ), но ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑдалиÑÑ.
VERBOSITYÐÑой пеÑеменной можно пÑиÑвоиÑÑ Ð·Ð½Ð°ÑениÑ
default,verboseилиterseÐ´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑÐ¾Ð²Ð½Ñ Ð´ÐµÑализаÑии в ÑообÑениÑÑ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ . (См. Ñакже командÑ\errverbose, полезнÑÑ, когда ÑÑебÑеÑÑÑ Ð¿Ð¾Ð´ÑÐ¾Ð±Ð½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ ÑолÑко ÑÑо вÑданной оÑибки.)
ÐнÑеÑполÑÑÐ¸Ñ 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") не вÑполнÑеÑÑÑ, еÑли пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ ÑÑÑановлена. РлÑбом ÑлÑÑае можно ÑкÑаниÑоваÑÑ Ð´Ð²Ð¾ÐµÑоÑие Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð±ÑаÑной коÑой ÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑедоÑвÑаÑиÑÑ Ð¿Ð¾Ð´ÑÑановкÑ.
ÐÑполÑзование двоеÑоÑÐ¸Ñ Ð´Ð»Ñ Ð¿ÐµÑеменнÑÑ ÑвлÑеÑÑÑ ÑÑандаÑÑом 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.)%pPID обÑлÑживаÑÑего пÑоÑеÑÑа Ð´Ð»Ñ ÑекÑÑего подклÑÑениÑ.
%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 ÑовмеÑÑимÑÑ ÑвеÑнÑÑ ÑеÑминалов.
ЧÑÐ¾Ð±Ñ Ð²ÑÑавиÑÑ Ð·Ð½Ð°Ðº пÑоÑенÑа, нÑжно напиÑаÑÑ %%. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзÑÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ '%/%R%# ' Ð´Ð»Ñ PROMPT1 и PROMPT2 и '>> ' Ð´Ð»Ñ PROMPT3.
ÐÑимеÑание
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð±Ñла беÑÑовеÑÑно ÑпиÑана Ñ tcsh.
РедакÑиÑование командной ÑÑÑоки
psql поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÑ Readline Ð´Ð»Ñ Ñдобного ÑедакÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки. ÐÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ авÑомаÑиÑеÑки ÑоÑ
ÑанÑеÑÑÑ Ð¿Ñи вÑÑ
оде из psql и загÑÑжаеÑÑÑ Ð¿Ñи запÑÑке. ÐавеÑÑение клавиÑей TAB Ñакже поддеÑживаеÑÑÑ, Ñ
оÑÑ Ð»Ð¾Ð³Ð¸ÐºÐ° завеÑÑÐµÐ½Ð¸Ñ Ð½Ðµ пÑеÑендÑÐµÑ Ð½Ð° ÑÐ¾Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°ÑоÑа SQL. ÐапÑоÑÑ, генеÑиÑÑемÑе завеÑÑением по TAB, Ñакже могÑÑ ÐºÐ¾Ð½ÑликÑоваÑÑ Ñ Ð´ÑÑгими командами SQL, напÑÐ¸Ð¼ÐµÑ SET TRANSACTION ISOLATION LEVEL. ÐÑли по какой-либо пÑиÑине вам не нÑавиÑÑÑ Ð·Ð°Ð²ÐµÑÑение по клавиÑе TAB, его можно оÑклÑÑиÑÑ Ð² Ñайле .inputrc в ваÑем домаÑнем каÑалоге:
$if psql set disable-completion on $endif
(ÐÑо возможноÑÑÑ Ð½Ðµ psql, а Readline. ЧиÑайÑе докÑменÑаÑÐ¸Ñ Ðº Readline Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии.)
ÐеÑеменнÑе окÑÑжениÑ
COLUMNSÐÑли
\pset columnsÑавно нÑлÑ, ÑпÑавлÑÐµÑ ÑиÑиной ÑоÑмаÑа вÑводаwrapped, а Ñакже опÑеделÑеÑ, нÑжно ли иÑполÑзоваÑÑ Ð¿Ð¾ÑÑÑаниÑник и нÑжно ли пеÑеклÑÑаÑÑÑÑ Ð² веÑÑикалÑнÑй ÑоÑÐ¼Ð°Ñ Ð² Ñежимеexpanded auto.PAGERÐÑли ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа не помеÑаеÑÑÑ Ð½Ð° ÑкÑане, он пÑопÑÑкаеÑÑÑ ÑеÑез ÑÑÑ Ð¿ÑогÑаммÑ. ÐбÑÑно ÑÑо
moreилиless. ÐнаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ Ð¿Ð»Ð°ÑÑоÑмÑ. ÐÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑÑÑаниÑника можно оÑказаÑÑÑÑ, оÑиÑÑив пеÑеменнÑÑPAGERили ÑÑÑановив ÑооÑвеÑÑÑвÑÑÑие паÑамеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ\pset.PGDATABASEPGHOSTPGPORTPGUSERÐаÑамеÑÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (Ñм. Раздел 30.14).
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ÐлÑÑеÑнаÑивное ÑаÑположение Ñайла Ñ Ð¸ÑÑоÑией команд. ÐопÑÑкаеÑÑÑ Ð¸ÑполÑзование ÑилÑÐ´Ñ (
~).PSQLRCÐлÑÑеÑнаÑивное ÑаÑположение полÑзоваÑелÑÑкого Ñайла
.psqlrc. ÐопÑÑкаеÑÑÑ Ð¸ÑполÑзование ÑилÑÐ´Ñ (~).SHELLÐоманда опеÑаÑионной ÑиÑÑемÑ, вÑполнÑÐµÐ¼Ð°Ñ Ð¼ÐµÑакомандой
\!.TMPDIRÐаÑалог Ð´Ð»Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²ÑеменнÑÑ Ñайлов. Ðо ÑмолÑаниÑ
/tmp.
ÐÑа ÑÑилиÑа, как и болÑÑинÑÑво дÑÑÐ³Ð¸Ñ ÑÑÐ¸Ð»Ð¸Ñ Postgres Pro, Ñакже иÑполÑзÑÐµÑ Ð¿ÐµÑеменнÑе ÑÑедÑ, поддеÑживаемÑе libpq (Ñм. Раздел 30.14).
ФайлÑ
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-9.2или~/.psqlrc-9.2.5. ÐÑи налиÑии неÑколÑÐºÐ¸Ñ Ñайлов, Ñайл Ñ Ð±Ð¾Ð»ÐµÐµ деÑалÑнÑм номеÑом веÑÑии бÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ Ð¿ÑедпоÑÑение..psql_historyÐÑÑоÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ ÑÑÑоки Ñ ÑаниÑÑÑ Ð² Ñайле
~/.psql_historyили%APPDATA%\postgresql\psql_historyна Windows.РаÑположение Ñайла иÑÑоÑии можно задаÑÑ Ñвно ÑеÑез пеÑеменнÑÑ Ð¾ÐºÑÑжениÑ
PSQL_HISTORY.
ÐамеÑаниÑ
psql лÑÑÑе вÑего ÑабоÑÐ°ÐµÑ Ñ ÑеÑвеÑами Ñой же или более ÑÑаÑой оÑновной веÑÑии. Сбой меÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ веÑоÑÑен, еÑли веÑÑÐ¸Ñ ÑеÑвеÑа новее, Ñем веÑÑÐ¸Ñ psql. Ðднако ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ÑемейÑÑва
\dÐ´Ð¾Ð»Ð¶Ð½Ñ ÑабоÑаÑÑ Ñ Ð²ÐµÑÑиÑми ÑеÑвеÑа до 7.4, Ñ Ð¾ÑÑ Ð¸ необÑзаÑелÑно Ñ ÑеÑвеÑами новее, Ñем Ñам 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.
ÐÑимеÑÑ
ÐеÑвÑй пÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, ÑÑо Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° одной ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð½ÐµÑколÑко ÑÑÑок. ÐбÑаÑиÑе внимание, как менÑеÑÑÑ Ð¿ÑиглаÑение:
testdb=>CREATE TABLE my_table (testdb(>first integer not null default 0,testdb(>second text)testdb->;CREATE TABLE
ТепеÑÑ Ð¿Ð¾ÑмоÑÑим на опÑеделение ÑаблиÑÑ:
testdb=> \d my_table
ТаблиÑа "my_table"
ÐÑÑибÑÑ | Тип | ÐодиÑикаÑоÑÑ
---------+---------+--------------------
first | integer | NOT NULL DEFAULT 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 unalignedФоÑÐ¼Ð°Ñ Ð²Ñвода: unaligned. peter@localhost testdb=>\pset fieldsep ','РазделиÑÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹: ",". peter@localhost testdb=>\pset tuples_onlyÐÑводÑÑÑÑ ÑолÑко коÑÑежи. 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 | ЧеÑÑÑе
Ðогда ÑÑо ÑмеÑÑно, ÑезÑлÑÑаÑÑ Ð·Ð°Ð¿ÑоÑа можно пÑоÑмоÑÑеÑÑ Ð² виде пеÑекÑÑÑÑной ÑаблиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ \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)