PostgreSQL

Jak nastavit primární klíč s automatickým přírůstkem PostgreSQL?

Jak nastavit primární klíč s automatickým přírůstkem PostgreSQL?
Mohou nastat situace, kdy budete vytvářet a udržovat tabulky v PostgreSQL, když chcete konkrétní hodnoty pro sloupec, který je generován na vyžádání. To by platilo zejména pro sloupce „id“, které fungují jako primární klíč tabulky. Naštěstí pseudo-typ SERIAL umožňuje pohodlné používání celočíselné řady s automatickým zvyšováním. Série je typ databázového objektu v PostgreSQL, který vytváří řadu indexů nebo celých čísel. Sekvence PostgreSQL vytváří řetězec odlišných celých čísel, takže je vhodné ji použít jako primární klíč při generování nové tabulky. Ukážeme vám, jaké nabídky automatického zvyšování v PostgreSQL a v této příručce použijeme pseudo-typ SERIAL.

Syntax:

Obecná syntaxe pro vytvoření primárního klíče s automatickým přírůstkem je následující:

>> CREATE TABLE table_name (id SERIAL);

Podívejme se nyní na deklaraci CREATE TABLE podrobněji:

Chcete-li získat koncept automatického zvyšování, ujistěte se, že je ve vašem systému připojen a nakonfigurován PostgreSQL, než budete pokračovat s ilustracemi v této příručce. Otevřete prostředí příkazového řádku PostgreSQL z plochy. Přidejte název svého serveru, na kterém chcete pracovat, jinak jej ponechejte jako výchozí. Napište název databáze, která se nachází na vašem serveru, na kterém chcete pracovat. Pokud to nechcete změnit, nechte to jako výchozí. Budeme používat „testovací“ databázi, proto jsme ji přidali. Můžete také pracovat na výchozím portu 5432, ale můžete jej také změnit. Nakonec musíte zadat uživatelské jméno pro databázi, kterou si vyberete. Nechcete-li to změnit, ponechte výchozí nastavení. Zadejte heslo pro vybrané uživatelské jméno a stiskněte „Enter“ na klávesnici, abyste mohli začít používat příkazový shell.

Použití klíčového slova SERIAL jako datového typu:

Když vytváříme tabulku, obvykle do pole primárního sloupce nepřidáme klíčové slovo SERIAL. To znamená, že při použití příkazu INSERT musíme hodnoty přidat do sloupce primárního klíče. Když ale v našem dotazu při vytváření tabulky použijeme klíčové slovo SERIAL, neměli bychom při vkládání hodnot potřebovat přidávat hodnoty primárního sloupce. Pojďme se na to podívat.

Příklad 01:

Vytvořte tabulku „Test“ se dvěma sloupci „id“ a „name“. Sloupec „id“ byl definován jako sloupec primárního klíče, protože jeho datový typ je SERIAL. Na druhé straně je sloupec „name“ definován jako datový typ TEXT NOT NULL. Zkuste vytvořit příkaz níže a vytvoří se tabulka efektivně, jak je vidět na obrázku níže.

>> CREATE TABLE Test (id SÉRIOVÁ PRIMÁRNÍ KLÍČ, název TEXT NENÍ NULL);

Vložme některé hodnoty do sloupce „název“ nově vytvořené tabulky „TEST“. Do sloupce „id“ nepřidáme žádnou hodnotu. Můžete vidět, že hodnoty byly úspěšně vloženy pomocí příkazu INSERT, jak je uvedeno níže.

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

Je čas zkontrolovat záznamy tabulky „Test“. Vyzkoušejte níže uvedenou instrukci SELECT v příkazovém prostředí.

>> SELECT * FROM Test;

Z níže uvedeného výstupu si můžete všimnout, že sloupec „id“ má v sobě automaticky nějaké hodnoty, i když jsme nepřidali žádné hodnoty z příkazu INSERT kvůli datovému typu SERIAL, který jsme zadali pro sloupec „id“. Takto funguje datový typ SERIAL sám o sobě.

Příklad 02:

Dalším způsobem, jak zkontrolovat hodnotu sloupce datového typu SERIAL, je použití klíčového slova RETURNING v příkazu INSERT. Níže uvedená deklarace vytvoří nový řádek v tabulce „Test“ a získá hodnotu pro pole „id“:

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

Zkontrolováním záznamů tabulky „Test“ pomocí dotazu SELECT jsme získali níže uvedený výstup, jak je zobrazen na obrázku. Pátý záznam byl efektivně přidán do tabulky.

>> SELECT * FROM Test;

Příklad 03:

Alternativní verze výše uvedeného vkládacího dotazu používá klíčové slovo DEFAULT. V příkazu INSERT budeme používat název sloupce „id“ a v sekci HODNOTY mu jako hodnotu dáme klíčové slovo DEFAULT. Níže uvedený dotaz bude po spuštění fungovat stejně.

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

Podívejme se na tabulku znovu pomocí dotazu SELECT takto:

>> SELECT * FROM Test;

Z výstupu níže můžete vidět, že byla přidána nová hodnota, zatímco sloupec „id“ byl ve výchozím nastavení zvýšen.

Příklad 04:

Pořadové číslo pole sloupce SERIAL najdete v tabulce v PostgreSQL. K tomu se používá metoda pg_get_serial_sequence (). Spolu s metodou pg_get_serial_sequence () musíme použít funkcicurval (). V tomto dotazu poskytneme název tabulky a její název SERIAL sloupce v parametrech funkce pg_get_serial_sequence (). Jak vidíte, zadali jsme tabulku „Test“ a sloupec „id“. Tato metoda se používá v níže uvedeném příkladu dotazu:

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

Stojí za zmínku, že naše funkce currentval () nám pomáhá extrahovat nejnovější hodnotu sekvence, která je „5“. Níže uvedený obrázek ilustruje, jak by výkon mohl vypadat.

Závěr:

V tomto tutoriálu průvodce jsme si ukázali, jak použít pseudo-typ SERIAL k automatickému přírůstku v PostgreSQL. Pomocí řady v PostgreSQL je snadné vytvořit sadu automaticky se zvyšujících čísel. Doufejme, že budete moci použít pole SERIAL na popisy tabulek pomocí našich ilustrací jako reference.

V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...
Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...