Jak nastavit primární klíč pro automatické zvyšování PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Mohou nastat případy, kdy budete v PostgreSQL vytvářet a udržovat tabulky, 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í SÉRIOVÝ pseudo-typ umožňuje pohodlnou automatickou inkrementaci celé řady. 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ý k použití jako primární klíč při generování nové tabulky. Ukážeme vám, jaké automatické přírůstky nabídek v PostgreSQL budou v této příručce používat SERIÁLNÍ pseudo-typ.

Syntax:

Obecná syntaxe pro vytváření primárního klíče automatického přírůstku je následující:







>>VYTVOŘIT TABULKU název_tabulky( idSERIÁL);

Podívejme se nyní podrobněji na prohlášení CREATE TABLE:



  • PostgreSQL nejprve generuje entitu série. Vytvoří další hodnotu v řadě a nastaví ji jako výchozí referenční hodnotu pole.
  • PostgreSQL aplikuje implicitní omezení NOT NULL na pole id, protože řada vytváří číselné hodnoty.
  • Pole ID bude přiděleno jako držitel řady. Pokud je pole id nebo samotná tabulka vynechána, sekvence bude zahozena.

Chcete-li získat koncept automatického přírůstku, zajistěte, aby byl PostgreSQL nainstalován a nakonfigurován ve vašem systému, než budete pokračovat s ilustracemi v této příručce. Na ploše otevřete shell příkazového řádku PostgreSQL. Přidejte název serveru, na kterém chcete pracovat, jinak ponechte výchozí nastavení. Napište název databáze, který leží na vašem serveru, na kterém chcete pracovat. Pokud to nechcete změnit, ponechte 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 také jej můžete změnit. Nakonec musíte zadat uživatelské jméno pro databázi, kterou si vyberete. Pokud to nechcete změnit, ponechte výchozí nastavení. Chcete -li začít používat příkazový shell, zadejte heslo pro vybrané uživatelské jméno a stiskněte klávesu Enter.







Použití SÉRIOVÉHO klíčového slova jako datového typu:

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

Příklad 01:

Vytvořte test tabulky se dvěma sloupci id a name. ID sloupce bylo definováno jako sloupec primárního klíče, protože jeho datový typ je SERIAL. Na druhé straně je název sloupce definován jako datový typ TEXT NENÍ NULL. Zkuste příkaz níže vytvořit tabulku a tabulka bude vytvořena efektivně, jak je vidět na obrázku níže.



>>VYTVOŘIT TABULKU Test( idSÉRIOVÝ PRIMÁRNÍ KLÍČ, název TEXT NENÍ NULL);

Vložíme některé hodnoty do názvu sloupce nově vytvořeného TESTU tabulky. Do ID sloupce 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.

>>VLOŽTE DO testu(název)HODNOTY(„Aqsa“),('Rimsha'),(„Khan“);

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

>>VYBRAT*OD ZKOUŠKY;

Z níže uvedeného výstupu si můžete všimnout, že ID sloupce do něj automaticky dostalo nějaké hodnoty, přestože jsme z příkazu INSERT nepřidali žádné hodnoty kvůli datovému typu SERIAL, který jsme zadali pro id sloupce. Takto funguje datový typ SERIAL samostatně.

Příklad 02:

Dalším způsobem, jak zkontrolovat hodnotu sloupce SERIÁLNÍ typ dat, je použití klíčového slova RETURNING v příkazu INSERT. Níže uvedená deklarace vytvoří nový řádek v testovací tabulce a poskytne hodnotu pro pole id:

>>VLOŽTE DO testu(název)HODNOTY('Hassam')NÁVRATNOSTid;

Kontrolou záznamů tabulky Test pomocí dotazu SELECT jsme získali níže uvedený výstup zobrazený na obrázku. Pátý rekord byl efektivně přidán do tabulky.

>>VYBRAT*OD ZKOUŠKY;

Příklad 03:

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

>>VLOŽTE DO testu(id, název)HODNOTY(VÝCHOZÍ, „závod“);

Zkontrolujme tabulku znovu pomocí dotazu SELECT následujícím způsobem:

>>VYBRAT*OD ZKOUŠKY;

Z níže uvedeného výstupu můžete vidět, že nová hodnota byla přidána, zatímco ID sloupce bylo ve výchozím nastavení zvýšeno.

Příklad 04:

Pořadové číslo pole sloupce SERIÁL najdete v tabulce v PostgreSQL. K dosažení tohoto cíle se používá metoda pg_get_serial_sequence (). Spolu s metodou pg_get_serial_sequence () musíme použít funkci streamval (). V tomto dotazu uvedeme název tabulky a její název SÉRIOVÉHO sloupce v parametrech funkce pg_get_serial_sequence (). Jak vidíte, zadali jsme test tabulky a ID sloupce. Tato metoda se používá v níže uvedeném příkladu dotazu:

>>VYBRAT proud(pg_get_serial_sequence('Test', 'id'));

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

Závěr:

V tomto průvodci jsme ukázali, jak používat SERIÁLNÍ pseudo-typ k automatickému přírůstku v PostgreSQL. Pomocí řady v PostgreSQL je snadné vytvořit sadu automaticky zvyšujících čísel. Naštěstí budete moci použít pole SERIÁL na popisy tabulky pomocí našich ilustrací jako reference.