PostgreSQL

Ako nastaviť primárny kľúč s automatickým prírastkom PostgreSQL?

Ako nastaviť primárny kľúč s automatickým prírastkom PostgreSQL?
Môžu sa vyskytnúť prípady, keď v PostgreSQL zostavujete a udržiavate tabuľky, keď chcete konkrétne hodnoty pre stĺpec, ktorý sa generuje na požiadanie. To platí najmä pre stĺpce „id“, ktoré fungujú ako primárny kľúč tabuľky. Našťastie pseudo-typ SERIAL umožňuje pohodlné použitie celočíselných radov s automatickým zvyšovaním. Séria je typ databázového objektu v PostgreSQL, ktorý vytvára sériu indexov alebo celých čísel. Sekvencia PostgreSQL produkuje reťazec odlišných celých čísel, takže je vhodné ju použiť ako primárny kľúč pri generovaní novej tabuľky. Ukážeme vám, aké ponuky automatického zvyšovania sú v PostgreSQL, a v tejto príručke použijeme pseudo-typ SERIAL.

Syntax:

Všeobecná syntax pre vytvorenie primárneho kľúča s automatickým zvyšovaním je nasledovná:

>> CREATE TABLE table_name (id SERIAL);

Pozrime sa teraz na deklaráciu CREATE TABLE podrobnejšie:

Ak chcete získať koncept automatického prírastku, pred pokračovaním v ilustráciách v tejto príručke sa uistite, že je vo vašom systéme pripojený a nakonfigurovaný server PostgreSQL. Otvorte shell príkazového riadku PostgreSQL z pracovnej plochy. Pridajte názov servera, na ktorom chcete pracovať, inak ho ponechajte predvolený. Napíšte názov databázy, ktorá sa nachádza na vašom serveri, na ktorom chcete pracovať. Ak to nechcete zmeniť, nechajte to ako predvolené. Budeme používať „testovaciu“ databázu, preto sme ju pridali. Môžete tiež pracovať s predvoleným portom 5432, ale môžete ho tiež zmeniť. Nakoniec musíte uviesť používateľské meno pre databázu, ktorú si vyberiete. Ak to nechcete zmeniť, nechajte ho predvolené. Zadajte heslo pre vybrané používateľské meno a stlačte kláves „Enter“ na klávesnici, aby ste mohli začať používať príkazový shell.

Použitie kľúčového slova SERIAL ako typu údajov:

Keď vytvárame tabuľku, zvyčajne do poľa primárneho stĺpca nepridáme kľúčové slovo SERIAL. To znamená, že keď používame príkaz INSERT, musíme do stĺpca primárneho kľúča pridať hodnoty. Ale keď pri vytváraní tabuľky použijeme v našom dotaze kľúčové slovo SERIAL, nemuseli by sme pri vkladaní hodnôt potrebovať pridávať hodnoty primárnych stĺpcov. Poďme sa na to pozrieť.

Príklad 01:

Vytvorte tabuľku „Test“ s dvoma stĺpcami „id“ a „name“. Stĺpec „id“ bol definovaný ako stĺpec primárneho kľúča, pretože jeho dátový typ je SERIAL. Na druhej strane je stĺpec „name“ definovaný ako dátový typ TEXT NOT NULL. Skúste vytvoriť príkaz pomocou príkazu nižšie, ktorý sa vytvorí efektívne, ako je to znázornené na obrázku nižšie.

>> VYTVORTE TABUĽKU Test (id SÉRIOVÝ ZÁKLADNÝ KLÍČ, názov TEXT NIE JE NULL);

Vložme niektoré hodnoty do stĺpca „názov“ novovytvorenej tabuľky „TEST“. Do stĺpca „id“ nepridáme žiadnu hodnotu. Uvidíte, že hodnoty boli úspešne vložené pomocou príkazu INSERT, ako je uvedené nižšie.

>> INSERT INTO Test (name) VALUES ('Aqsa'), ('Rimsha'), ('Khan');

Je čas skontrolovať záznamy tabuľky „Test“. Vyskúšajte nižšie uvedenú inštrukciu SELECT v príkazovom shell.

>> SELECT * FROM Test;

Z výstupu uvedeného nižšie si môžete všimnúť, že stĺpec „id“ doň má automaticky nejaké hodnoty, aj keď sme z príkazu INSERT nepridali žiadne hodnoty kvôli údajovému typu SERIAL, ktorý sme zadali pre stĺpec „id“. Takto funguje datový typ SERIAL sám o sebe.

Príklad 02:

Ďalším spôsobom, ako skontrolovať hodnotu stĺpca údajový typ SERIAL, je použitie kľúčového slova RETURNING v príkaze INSERT. Nasledujúca deklarácia vytvorí nový riadok v tabuľke „Test“ a získa hodnotu pre pole „id“:

>> INSERT INTO Test (name) VALUES ('Hassam') RETURNING id;

Skontrolovaním záznamov tabuľky „Test“ pomocou dotazu SELECT sme dostali výstup uvedený nižšie na obrázku. Piaty rekord bol efektívne pridaný do tabuľky.

>> SELECT * FROM Test;

Príklad 03:

Alternatívna verzia vyššie uvedeného vloženého dotazu používa kľúčové slovo DEFAULT. V príkaze INSERT použijeme názov stĺpca „id“ a v časti HODNOTY mu dáme ako hodnotu kľúčové slovo DEFAULT. Nižšie uvedený dotaz bude po vykonaní fungovať rovnako.

>> INSERT INTO Test (id, name) VALUES (DEFAULT, 'Raza');

Znova skontrolujme tabuľku pomocou dotazu SELECT nasledovne:

>> SELECT * FROM Test;

Ako vidíte na výstupe nižšie, nová hodnota bola pridaná, zatiaľ čo stĺpec „id“ bol štandardne zvýšený.

Príklad 04:

Poradové číslo poľa stĺpca SERIAL nájdete v tabuľke v PostgreSQL. Na tento účel sa používa metóda pg_get_serial_sequence (). Spolu s metódou pg_get_serial_sequence () musíme použiť funkciucurval (). V tomto dotaze poskytneme názov tabuľky a jej názov stĺpca SERIAL v parametroch funkcie pg_get_serial_sequence (). Ako vidíte, zadali sme tabuľku „Test“ a stĺpec „id“. Táto metóda sa používa v príklade nižšie uvedeného dotazu:

>> SELECTcurval (pg_get_serial_sequence ('Test', 'id'));

Stojí za zmienku, že naša funkcia currentval () nám pomáha extrahovať najnovšiu hodnotu sekvencie, ktorá je „5“. Obrázok nižšie ukazuje, ako by predstavenie mohlo vyzerať.

Záver:

V tejto príručke sprievodcu sme si ukázali, ako používať pseudo-typ SERIAL na automatické zvyšovanie v PostgreSQL. Pomocou série v PostgreSQL je jednoduché zostaviť množinu čísel s automatickým zvyšovaním. Dúfajme, že budete môcť použiť pole SERIAL na popisy tabuliek pomocou našich ilustrácií ako referencie.

Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...
Hry HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
HD remasterované hry pre Linux, ktoré nikdy predtým nemali vydanie Linuxu
Mnoho vývojárov a vydavateľov hier prichádza s remastrom starých hier v rozlíšení HD, aby predĺžili životnosť franšízy. Prosím fanúšikov, ktorí požadu...