Počítače Windows internet

Základné príkazy PostgreSQL. Základné príkazy PostgreSQL Vyhľadanie a zmena umiestnenia inštancie klastra

Dobrý deň, dnes chcem urobiť malú poznámku o základných príkazoch PostgreSQL. S PosgreSQL môžete pracovať interaktívne aj z príkazového riadku. Program je psql. Som si istý, že tento zoznam bude pre vás veľmi užitočný a ušetrí vám čas pri hľadaní rôznych zdrojov. Pripomínam, že ide o open-source projekt, založený na Postgres DBMS, vydaný v roku 1986, vyvíja ho celosvetová skupina vývojárov PGDG, v podstate je to 5-8 ľudí, no napriek tomu sa veľmi intenzívne vyvíja, zavádza všetky nové funkcie a opravuje staré chyby a chyby.

Základné príkazy PostgreSQL v interaktívnom režime:

  • \ connect db_name - pripojenie k databáze s názvom db_name
  • \ du - zoznam užívateľov
  • \ dp (alebo \ z) - zoznam tabuliek, pohľadov, sekvencií, prístupových práv k nim
  • \ di - indexy
  • \ ds - sekvencie
  • \ dt - zoznam tabuliek
  • \ dt + - zoznam všetkých tabuliek s popisom
  • \ dt * s * - zoznam všetkých tabuliek obsahujúcich s v názve
  • \ dv - pohľady
  • \ dS - systémové tabuľky
  • \ d + - popis tabuľky
  • \ o - odoslať výsledky dotazu do súboru
  • \ l - zoznam databáz
  • \ i - čítanie prichádzajúcich údajov zo súboru
  • \ e - otvorí aktuálny obsah vyrovnávacej pamäte požiadaviek v editore (ak nie je v prostredí premennej EDITOR uvedené inak, štandardne sa použije vi)
  • \ d "názov_tabuľky" - popis tabuľky
  • \ spustím príkaz z externého súboru ako \ i /my/directory/my.sql
  • \ pset - príkaz na nastavenie parametrov formátovania
  • \ echo - zobrazí správu
  • \ set - nastaví hodnotu premennej prostredia. Bez parametrov zobrazí zoznam aktuálnych premenných (\ unset - odstráni).
  • \? - referencia psql
  • \ help - SQL referencia
  • \ q (alebo Ctrl + D) - ukončite program

Práca s PostgreSQL z príkazového riadku:

  • -c (alebo -príkaz) - Spustite príkaz SQL bez prechodu do interaktívneho režimu
  • -f file.sql - spustiť príkazy zo súboru file.sql
  • -l (alebo -list) - zobrazí zoznam dostupných databáz
  • -U (alebo -username) - zadajte používateľské meno (napríklad postgres)
  • -W (alebo -password) - výzva na zadanie hesla
  • -d dbname - pripojenie k databáze dbname
  • -h - názov hostiteľa (servera)
  • -s - režim krok za krokom, to znamená, že budete musieť potvrdiť všetky príkazy
  • –S - jednoriadkový režim, to znamená, že nový riadok vykoná dotaz (zbaví sa; na konci príkazu SQL)
  • -V - Verzia PostgreSQL bez vstupu do interaktívneho režimu

Príklady:

psql -U postgres -d dbname -c “VYTVORIŤ TABUĽKU my (sériový PRIMÁRNY kľúč nejaké_id, text nejakého_textu);” - vykonanie príkazu v databáze dbname.

psql -d dbname -H -c "SELECT * FROM my" -o my.html - výstup výsledku dotazu do súboru html.

PosgreSQL utility (programy):

  • createdb a dropdb - vytvorenie a odstránenie databázy (v tomto poradí)
  • createuser a dropuser - vytvoriť a používateľ (v tomto poradí)
  • pg_ctl - program určený na riešenie všeobecných úloh správy (spustenie, zastavenie, konfigurácia parametrov atď.)
  • postmaster - modul viacužívateľského servera PostgreSQL (nastavenie úrovní ladenia, portov, dátových adresárov)
  • initdb - vytvorte nové klastre PostgreSQL
  • initlocation - program na vytváranie adresárov pre sekundárne uloženie databáz
  • vákuumdb - fyzická a analytická údržba databázy
  • pg_dump - zálohovanie a obnova dát
  • pg_dumpall - zálohovanie celého klastra PostgreSQL
  • pg_restore - obnovenie databázy z archívov (.tar, .tar.gz)

Príklady vytvárania záloh:

Vytvorenie zálohy databázy mydb v komprimovanej forme

Pg_dump -h localhost -p 5440 -U someuser -F c -b -v -f mydb.backup mydb

Vytvorenie zálohy databázy mydb vo forme obyčajného textového súboru vrátane príkazu na vytvorenie databázy

Pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

Vytvorenie zálohy databázy mydb v komprimovanej forme s tabuľkami, ktoré obsahujú platby v názve

Pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t * platby * -f payment_tables.backup mydb

Výpis údajov iba z jednej konkrétnej tabuľky. Ak potrebujete zálohovať niekoľko tabuliek, názvy týchto tabuliek sú uvedené pomocou prepínača -t pre každú tabuľku.

Pg_dump -a -t názov_tabuľky -f názov_súboru názov_databázy

Vytvorenie zálohy s kompresiou gz

Pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c> mydb.gz

Zoznam najčastejšie používaných možností:

  • -h hostiteľ - hostiteľ, ak nie je zadaný, použije sa localhost alebo hodnota z premennej prostredia PGHOST.
  • -p port - port, ak nie je zadaný, použije sa 5432 alebo hodnota z premennej prostredia PGPORT.
  • -u - užívateľ, ak nie je zadaný, použije sa aktuálny užívateľ, hodnotu možno zadať aj v premennej prostredia PGUSER.
  • -a, -data-only - predvolene sa ukladajú iba údaje, údaje a schéma.
  • -b - zahrnúť veľké objekty (blogy) do skládky.
  • -s, -schema-only - výpis iba schémy.
  • -C, -create - pridá príkaz na vytvorenie databázy.
  • -c - pridáva príkazy na zhadzovanie (odhadzovanie) objektov (tabuľky, pohľady atď.).
  • -O - ​​nepridávajte príkazy na nastavenie vlastníka objektu (tabuľky, pohľady atď.).
  • -F, -format (c | t | p) - výstupný formát výpisu, vlastný, tar alebo obyčajný text.
  • -t, -table = TABLE - špecifikuje konkrétnu tabuľku pre výpis.
  • -v, -verbose - výstup podrobných informácií.
  • -D, -attribute-inserts - výpis pomocou príkazu INSERT so zoznamom názvov vlastností.

Zálohujte všetky databázy pomocou príkazu pg_dumpall.

Pg_dumpall> all.sql

Obnovenie tabuliek zo záloh (záloh):

psql - obnovenie záloh uložených v obyčajnom textovom súbore;
pg_restore - obnovenie komprimovaných záloh (tar);

Obnovenie celej zálohy, ignorovanie chýb

Psql -h localhost -U someuser -d dbname -f mydb.sql

Obnovenie celej zálohy, zastavenie pri prvej chybe

Psql -h localhost -U someuser -set ON_ERROR_STOP = on -f mydb.sql

Ak chcete obnoviť z archívu tar, musíme najprv vytvoriť databázu pomocou CREATE DATABASE mydb; (ak pri vytváraní zálohy nebola zadaná voľba -C) a obnoviť

Pg_restore -dbname = mydb -jobs = 4 -podrobná mydb.backup

Obnovenie zálohy databázy komprimovanej gz

psql -U postgres -d mydb -f mydb

Myslím, že databáza postgresql vám bude teraz prehľadnejšia. Dúfam, že tento zoznam príkazov PostgreSQL bol pre vás užitočný.

Posledná aktualizácia: 17.03.2018

Na vytvorenie tabuliek použite príkaz CREATE TABLE, za ktorým nasleduje názov tabuľky. S týmto príkazom je možné použiť aj množstvo operátorov, ktoré definujú stĺpce tabuľky a ich atribúty. Všeobecná syntax na vytvorenie tabuľky je nasledovná:

CREATE TABLE názov_tabuľky (názov_stĺpca1 údajový typ atribúty stĺpca1, názov_stĺpca2 typ údajov stĺpec_atribúty2, .................................. .. .......... názov_stĺpcaN údajový typ atribúty_stĺpcaN, atribúty_tabuľky);

Špecifikácia pre všetky stĺpce je uvedená v zátvorkách za názvom tabuľky. Okrem toho musí byť pre každý stĺpec uvedený názov a typ údajov, ktoré bude reprezentovať. Typ údajov určuje, aké údaje (čísla, reťazce atď.) môže stĺpec obsahovať.

Vytvorme si napríklad tabuľku v databáze cez pgAdmin. Ak to chcete urobiť, najprv vyberte cieľovú databázu v pgAdmin, kliknite na ňu pravým tlačidlom myši a v kontextovej ponuke vyberte položku Query Tool ...:

Potom sa otvorí pole pre zadanie SQL kódu. Okrem toho bude tabuľka vytvorená špeciálne pre databázu, pre ktorú otvoríme toto pole na zadanie SQL.

VYTVORIŤ TABUĽKU zákazníkov (Id SÉRIOVÝ PRIMÁRNY KĽÚČ, Krstné meno RÔZNY ZNAK (30), ZNAK priezviska RÔZNY (30), RÔZNY ZNAK e-mailu (30), Vek INTEGER);

V tomto prípade tabuľka Zákazníci definuje päť stĺpcov: ID, Meno, Priezvisko, Vek, Email. Prvý stĺpec Id predstavuje ID zákazníka, slúži ako primárny kľúč, a preto je typu SERIAL. V skutočnosti bude tento stĺpec uchovávať číselnú hodnotu 1, 2, 3 atď., ktorá sa automaticky zvýši o jeden pre každý nový riadok.

Ďalšie tri stĺpce predstavujú krstné meno, priezvisko a e-mailovú adresu zákazníka a sú typu CHARACTER VARYING (30), to znamená, že predstavujú reťazec maximálne 30 znakov.

Posledný stĺpec Vek predstavuje vek používateľa a je typu INTEGER, teda ukladá čísla.

A po vykonaní tohto príkazu sa tabuľka zákazníkov pridá do vybranej databázy.

Zhadzovanie stolov

Na zrušenie tabuliek použite príkaz DROP TABLE, ktorý má nasledujúcu syntax:

DROP TABLE tabuľka1 [, tabuľka2, ...];

Napríklad zrušenie tabuľky zákazníkov.

Alternatívou práce s databázou cez konzolu je intuitívnejšie prostredie pre ľubovoľného klienta s grafickým rozhraním. Napríklad, pgAdmin... Inštalácia je veľmi jednoduchá, spúšťame ju s právami superužívateľa:

sudo apt-get install pgadmin3
Teraz môžete bežať pgAdmin cez grafické rozhranie. Vyberte lokálny databázový server zo zoznamu (má predvolený port 5432) a pridajte databázu, ktorú sme už vytvorili, s parametrami, ktoré sme zadali.
pgAdmin

Na tomto lokálnom serveri okrem uzla databázy môžete tiež nájsť uzol tzv Prihlasovacie roly- všetky dostupné roly.

Vyberme si zo všetkých dostupných databáz tú, s ktorou sme vytvorili. Databáza obsahuje mnoho rôznych typov objektov. Osobitná pozornosť by sa mala venovať tabuľkám a sekvenciám ( sekvencie).

Bežná tabuľka najčastejšie obsahuje primárny kľúč vo forme kladnej číselnej hodnoty. Táto hodnota musí byť jedinečná pre každý riadok, takže aby ste ju nenastavovali zakaždým priamo v požiadavke, môžete ako predvolenú hodnotu nastaviť poradie.

Najprv vytvoríme postupnosť. Vyberáme Sekvencie - Nová sekvencia... Na prvej karte zadajte názov a zadajte ho ako vlastník rolu, ktorú sme vytvorili. Táto sekvencia nebude dostupná pre iné roly. Na druhej karte do polí Prírastok a Štart zadávame jeden po druhom (pokiaľ nepožadujete inak). Na poslednej karte dialógového okna môžete vidieť výsledný SQL dotaz, ktorý sa vykoná proti databáze.

Po vytvorení sekvencie začnime vytvárať tabuľku. Uvádzame aj jej meno a majiteľa (majiteľa). Na štvrtej karte Stĺpce najprv pridáme primárny kľúč. Tlačidlo Pridať v zobrazenom okne uveďte názov stĺpca, napr. id... Vyberieme ako typ údajov bigint... Na druhej záložke Definícia v teréne Predvolená hodnota označujeme našu postupnosť. Pole musí obsahovať hodnotu formulára nextval ("message_id_seq" :: regclass)... To znamená, že vždy, keď sa pridá nový riadok, zo sekvencie sa prevezme ďalšia hodnota. Podľa potreby boli pridané ďalšie stĺpce. Nakoniec v tab Obmedzenia pridať obmedzenie na primárny kľúč ( Primárny kľúč). Na poslednej záložke môžeme obdivovať výsledný SQL kód, ktorý pgAdmin vygeneroval. Po kliknutí na OK sa vytvorí tabuľka.

Namiesto bigintu ako primárneho kľúča ho môžete zadať ako typ stĺpca veľký seriál... Tento typ sa automaticky zvyšuje s každým novým riadkom, ktorý sa pridáva, takže nie je potrebné preň vytvárať sekvenciu. To znamená, že v najjednoduchšom prípade, ak nemáte žiadne špeciálne pravidlá na generovanie ID záznamu, môžete odporučiť použitie bigserial.

Pozrime sa na obsah našej tabuľky. Ak to chcete urobiť, kliknite naň pravým tlačidlom myši a vyberte z kontextového menu Zobraziť údaje - Zobraziť 100 riadkov.

V tom istom okne môžete rýchlo upraviť hodnotu ktorejkoľvek bunky v tabuľke. Ak má vaša tabuľka viac ako 100 záznamov, zmeňte počet záznamov zobrazených v rozbaľovacom zozname v hornej časti okna. Môžete zobraziť 100, 500, 1000 alebo všetky záznamy. Nie je to však nič iné ako spôsob, ako si rýchlo prezrieť obsah tabuľky a nemali by ste si na to zvykať. Ak máte v tabuľke desaťtisíce záznamov, neodporúčal by som zobrazovať všetky záznamy naraz – v tomto prípade je lepšie napísať dotaz pomocou parametrov limit a offset.

15 užitočných príkazov PostgreSQL

Na internete je veľa tutoriálov PostgreSQL, ktoré popisujú základné príkazy. Ale keď sa ponoríte hlbšie do práce, vyvstanú praktické problémy, ktoré si vyžadujú pokročilé tímy.

Takéto príkazy alebo úryvky sú zriedkavo zdokumentované. Pozrime sa na niekoľko príkladov, užitočných pre vývojárov aj správcov databáz.

Získanie informácií o databáze

Veľkosť databázy

Na získanie fyzickej veľkosti súborov (úložiska) databázy používame nasledujúci dotaz:

SELECT pg_database_size (aktuálna_databáza ());

Výsledok bude prezentovaný ako číslo ako 41809016.

current_database () je funkcia, ktorá vracia názov aktuálnej databázy. Namiesto toho môžete zadať názov v texte:

SELECT pg_database_size ("moja_databaza");

Aby sme získali informácie v ľudsky čitateľnej forme, používame funkciu pg_size_pretty:

SELECT pg_size_pretty (pg_database_size (aktuálna_databáza ()));

V dôsledku toho dostaneme informácie vo forme 40 Mb.

Zoznam tabuliek

Niekedy chcete získať zoznam databázových tabuliek. Ak to chcete urobiť, použite nasledujúci dotaz:

SELECT názov_tabuľky FROM informačná_schéma.tabuľky WHERE tabuľková_schéma NIE JE IN ("informačná_schéma", "pg_katalóg");

information_schema je štandardná schéma databázy, ktorá obsahuje kolekcie pohľadov, ako sú tabuľky, polia atď. Tabuľkové zobrazenia obsahujú informácie o všetkých tabuľkách v databáze.

Dotaz popísaný nižšie vyberie všetky tabuľky zo zadanej schémy aktuálnej databázy:

SELECT názov_tabuľky FROM schéma_informácií.tabuľky WHERE schéma_tabuľky NIE JE IN ("schéma_informácií", "katalóg_pg") AND schéma_tabuľky IN ("verejné", "myschéma");

V poslednej klauzule IN môžete zadať názov konkrétnej schémy.

Veľkosť stola

Analogicky k získaniu veľkosti databázy je možné veľkosť údajov tabuľky vypočítať pomocou zodpovedajúcej funkcie:

SELECT pg_relation_size ("účty");

Funkcia pg_relation_size vracia množstvo miesta, ktoré zadaná vrstva zadanej tabuľky alebo indexu zaberá na disku.

Názov najväčšieho stola

Ak chcete zobraziť zoznam tabuliek v aktuálnej databáze zoradených podľa veľkosti tabuľky, vykonajte nasledujúci dotaz:

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC;

Aby sme zobrazili informácie o najväčšej tabuľke, obmedzíme dopyt pomocou LIMIT:

SELECT relname, relpages FROM pg_class ORDER BY relpages DESC LIMIT 1;

relname je názov tabuľky, indexu, zobrazenia atď.
relpages - veľkosť zobrazenia tejto tabuľky na disku v počte stránok (štandardne je jedna stránka 8 KB).
pg_class je systémová tabuľka, ktorá obsahuje informácie o vzťahoch medzi tabuľkami databázy.

Zoznam pripojených používateľov

Ak chcete zistiť názov, IP a použitý port pripojených používateľov, spustite nasledujúci dotaz:

SELECT názov údajov, názov použitia, adresa_klienta, port klienta FROM pg_stat_activity;

Aktivita používateľa

Na zistenie aktivity pripojenia konkrétneho používateľa používame nasledujúci dotaz:

SELECT dataname FROM pg_stat_activity WHERE usename = "devuser";

Práca s údajmi a poliami tabuľky

Odstránenie duplicitných riadkov

Ak sa tak stane, že tabuľka nemá primárny kľúč, je pravdepodobné, že medzi záznamami budú duplikáty. Ak je pre takúto tabuľku, najmä veľkú, potrebné nastaviť obmedzenia na kontrolu integrity, odstránime nasledujúce prvky:

  • duplicitné riadky,
  • situácie, keď je duplikovaný jeden alebo viac stĺpcov (ak sa tieto stĺpce majú použiť ako primárny kľúč).

Zoberme si tabuľku s údajmi o zákazníkoch, kde je duplikovaný celý riadok (druhý v rade).

Nasledujúci dotaz pomôže odstrániť všetky duplikáty:

DELETE FROM customers WHERE ctid NOT IN (SELECT max (ctid) FROM customers GROUP BY customers. *);

Pole ctid, ktoré je jedinečné pre každý záznam, je predvolene skryté, ale nachádza sa v každej tabuľke.

Posledná požiadavka je náročná na zdroje, takže pri jej vykonávaní na produkčnom projekte buďte opatrní.

Teraz zvážte prípad, keď sa hodnoty poľa opakujú.

Ak je možné odstrániť duplikáty bez uloženia všetkých údajov, vykonáme nasledujúci dotaz:

DELETE FROM customers WHERE ctid NOT IN (SELECT max (ctid) FROM customers GROUP BY customer_id);

Ak sú údaje dôležité, najprv musíte nájsť záznamy s duplikátmi:

SELECT * FROM customers WHERE ctid NOT IN (SELECT max (ctid) FROM customers GROUP BY customer_id);

Pred odstránením takýchto záznamov sa môžete presunúť do dočasnej tabuľky alebo v nich nahradiť hodnotu customer_id inou.

Všeobecná forma žiadosti o vymazanie záznamov popísaných vyššie je nasledovná:

DELETE FROM názov_tabuľky WHERE ctid NOT IN (SELECT max (ctid) FROM názov_tabulky GROUP BY stĺpec1,);

Bezpečne zmeňte typ poľa

Môže vyvstať otázka zahrnutia takejto úlohy do tohto zoznamu. V PostgreSQL je skutočne veľmi jednoduché zmeniť typ poľa pomocou príkazu ALTER. Pozrime sa opäť ako príklad na tabuľku zákazníkov.

Pole customer_id používa typ údajov reťazca varchar. Toto je chyba, pretože toto pole má uchovávať ID zákazníkov, ktoré sú vo formáte celého čísla. Použitie varcharu nie je opodstatnené. Pokúsme sa napraviť toto nedorozumenie pomocou príkazu ALTER:

ALTER TABLE zákazníci ALTER COLUMN customer_id TYPE celé číslo;

Ale v dôsledku vykonania dostaneme chybu:

CHYBA: stĺpec „customer_id“ nemožno automaticky pretypovať na typ celé číslo
Stav SQL: 42804
Tip: Na vykonanie konverzie zadajte výraz USING.

To znamená, že nemôžete jednoducho vziať a zmeniť typ poľa, ak sú v tabuľke údaje. Keďže bol použitý typ varchar, DBMS nemôže určiť, či je hodnota celé číslo. Aj keď údaje presne zodpovedajú tomuto typu. Na objasnenie tohto bodu chybové hlásenie navrhuje použiť výraz USING na správnu konverziu našich údajov na celé číslo:

ALTER TABLE customers ALTER COLUMN customer_id TYPE integer USING (customer_id :: integer);

Výsledkom bolo, že všetko prebehlo bez chýb:

Upozorňujeme, že pri použití POUŽÍVANIE je možné okrem konkrétneho výrazu použiť funkcie, iné polia a operátory.

Napríklad skonvertujme pole customer_id späť na varchar, ale s konverziou formátu údajov:

ALTER TABLE zákazníci ALTER STĹPEC customer_id TYPE varchar USING (customer_id || "-" || first_name);

V dôsledku toho bude tabuľka vyzerať takto:

Hľadanie „stratených“ hodnôt

Pri používaní sekvencií ako primárneho kľúča buďte opatrní: pri priraďovaní sa omylom preskočia niektoré prvky sekvencie a v dôsledku práce s tabuľkou sa niektoré záznamy vymažú. Tieto hodnoty je možné znova použiť, ale je ťažké ich nájsť vo veľkých tabuľkách.

Zoberme si dve možnosti vyhľadávania.

Prvý spôsob
Vykonajme nasledujúci dotaz, aby sme našli začiatok intervalu s hodnotou „stratené“:

SELECT customer_id + 1 FROM customers mo WHERE NOT EXISTS (SELECT NULL FROM customers mi WHERE mi.customer_id = mo.customer_id + 1) ORDER BY customer_id;

V dôsledku toho dostaneme hodnoty: 5, 9 a 11.

Ak potrebujete nájsť nielen prvý výskyt, ale aj všetky chýbajúce hodnoty, použijeme nasledujúci (na zdroje náročný!) dotaz:

WITH seq_max AS (SELECT max (customer_id) FROM customers), seq_min AS (SELECT min (customer_id) FROM customers) SELECT * FROM create_series ((SELECT min FROM seq_min), (SELECT max FROM seq_max)) EXCEPT SELECT customer_id FROM customers;

V dôsledku toho vidíme nasledujúci výsledok: 5, 9 a 6.

Druhý spôsob
Získame názov sekvencie priradenej k customer_id:

SELECT pg_get_serial_sequence ("zákazníci", "id_zákazníka");

A nájdeme všetky chýbajúce identifikátory:

WITH sequence_info AS (SELECT počiatočná_hodnota, posledná_hodnota FROM "Názov schémy". "Názov sekvencie") SELECT generovať_sériu ((informácie o sekvencii.počiatočná_hodnota), (informácie o_sekvencii.posledná_hodnota)) FROM sekvenčné_info EXCEPT SELECT customer_id FROM customers;

Počítanie počtu riadkov v tabuľke

Počet riadkov sa vypočíta štandardnou funkciou počítania, ale možno ju použiť s ďalšími podmienkami.

Celkový počet riadkov v tabuľke:

SELECT počet (*) FROM tabuľka;

Počet riadkov za predpokladu, že zadané pole neobsahuje NULL:

SELECT počet (názov stĺpca) FROM tabuľka;

Počet jedinečných riadkov pre zadané pole:

SELECT pocet (rozdielny nazov_stlpca) FROM tabuľka;

Používanie transakcií

Transakcia kombinuje postupnosť akcií do jednej operácie. Jeho zvláštnosťou je, že ak dôjde k chybe pri vykonávaní transakcie, žiadny z výsledkov akcií sa neuloží do databázy.

Začnime transakciu pomocou príkazu BEGIN.

Ak chcete vrátiť späť všetky operácie po BEGIN, použite príkaz ROLLBACK.

A aplikovať - ​​príkaz COMMIT.

Prezeranie a vypĺňanie spustiteľných požiadaviek

Ak chcete získať informácie o požiadavkách, spustite nasledujúci príkaz:

SELECT pid, age (query_start, clock_timestamp ()), usename, query FROM pg_stat_activity WHERE dotaz! = " "A dotaz NEPÁČI"% pg_stat_activity% "ORDER BY query_start desc;

Ak chcete zastaviť konkrétnu požiadavku, vykonajte nasledujúci príkaz s uvedením ID procesu (pid):

SELECT pg_cancel_backend (procpid);

Ak chcete ukončiť požiadavku, vykonajte:

SELECT pg_terminate_backend (procpid);

Práca s konfiguráciou

Nájdenie a zmena umiestnenia inštancie klastra

Nastáva situácia, keď je na jednom operačnom systéme nakonfigurovaných viacero inštancií PostgreSQL, ktoré „sedia“ na rôznych portoch. V tomto prípade je hľadanie cesty k fyzickému umiestneniu každej inštancie pomerne nervydrásajúca úloha. Aby sme získali tieto informácie, vykonáme nasledujúci dotaz pre akúkoľvek databázu záujmového klastra:

SHOW data_directory;

Zmeňme umiestnenie na niečo iné pomocou príkazu:

SET data_directory to new_directory_path;

Aby sa však zmeny prejavili, je potrebný reštart.

Získanie zoznamu dostupných typov údajov

Pomocou príkazu získame zoznam dostupných typov údajov:

SELECT typname, typlen from pg_type kde typtype = "b";

typname je názov typu údajov.
typlen je veľkosť typu údajov.

Zmena nastavení DBMS bez reštartu

Nastavenia PostgreSQL sa nachádzajú v špeciálnych súboroch ako postgresql.conf a pg_hba.conf. Po zmene týchto súborov musí DBMS znova získať nastavenia. Na tento účel sa databázový server reštartuje. Je jasné, že to musíte urobiť, ale na produkčnej verzii projektu, ktorú používajú tisíce používateľov, je to veľmi nežiaduce. Preto má PostgreSQL funkciu, pomocou ktorej môžete aplikovať zmeny bez reštartovania servera:

SELECT pg_reload_conf ();

Ale, bohužiaľ, neplatí to pre všetky parametre. V niektorých prípadoch je na použitie nastavení potrebný reštart.

Pokryli sme príkazy, ktoré pomôžu vývojárom a správcom databáz pomocou PostgreSQL zjednodušiť prácu. Ale to nie sú všetky možné techniky. Ak ste narazili na zaujímavé problémy, napíšte o nich v komentároch. Podeľme sa o užitočnú skúsenosť!