Kā iestatīt PostgreSQL automātiskās palielināšanas primāro atslēgu?

How Setup Postgresql Auto Increment Primary Key



Var būt gadījumi, kad veidojat un uzturējat tabulas PostgreSQL, ja vēlaties noteiktas vērtības kolonnai, kas tiek ģenerēta pēc pieprasījuma. Tas jo īpaši attiecas uz id kolonnām, kas darbojas kā tabulas primārā atslēga. Par laimi, SERIAL pseido tips ļauj ērti palielināt veselo skaitļu sēriju. Sērija ir datu bāzes objekta veids PostgreSQL, kas rada indeksu vai veselu skaitļu sēriju. PostgreSQL secība rada virkni atšķirīgu veselu skaitļu, padarot to piemērotu izmantošanai kā primāro atslēgu, veidojot jaunu tabulu. Mēs jums parādīsim, kādas automātiskās palielināšanas izvēlnes PostgreSQL, un šajā rokasgrāmatā izmantosim SĒRIJAS pseidotipu.

Sintakse:

Automātiskās palielināšanas primārās atslēgas izveides vispārējā sintakse ir šāda:







>>CREATE TABLE table_name( idSĒRIJAS);

Tagad sīkāk apskatīsim deklarāciju CREATE TABLE:



  • PostgreSQL vispirms ģenerē sērijas entītiju. Tas rada nākamo sērijas vērtību un nosaka to kā lauka noklusējuma atsauces vērtību.
  • PostgreSQL id laukam piemēro netiešo ierobežojumu NOT NULL, jo sērija rada skaitliskas vērtības.
  • ID lauks tiks piešķirts kā sērijas turētājs. Ja ID lauks vai pati tabula tiek izlaista, secība tiks atmesta.

Lai iegūtu automātiskās palielināšanas jēdzienu, lūdzu, pārliecinieties, vai PostgreSQL ir instalēts un konfigurēts jūsu sistēmā, pirms turpināt šīs rokasgrāmatas ilustrācijas. Atveriet PostgreSQL komandrindas apvalku no darbvirsmas. Pievienojiet sava servera nosaukumu, ar kuru vēlaties strādāt, pretējā gadījumā atstājiet to pēc noklusējuma. Uzrakstiet datubāzes nosaukumu, kas atrodas jūsu serverī, pie kura vēlaties strādāt. Ja nevēlaties to mainīt, atstājiet to kā noklusējumu. Mēs izmantosim testa datu bāzi, tāpēc mēs to esam pievienojuši. Varat arī strādāt ar noklusējuma portu 5432, taču varat to arī mainīt. Galu galā jums jānorāda lietotās datubāzes lietotājvārds. Atstājiet to pēc noklusējuma, ja nevēlaties to mainīt. Ievadiet paroli izvēlētajam lietotājvārdam un nospiediet taustiņu Enter, lai sāktu lietot komandu apvalku.







SERIAL atslēgvārda izmantošana kā datu tips:

Veidojot tabulu, mēs parasti nepievienojam atslēgvārdu SĒRIJA primārās kolonnas laukā. Tas nozīmē, ka, pievienojot paziņojumu INSERT, mums ir jāpievieno vērtības primārās atslēgas slejai. Bet, veidojot tabulu, vaicājumā izmantojam atslēgvārdu SĒRIJA, ievietojot vērtības, mums nevajadzētu pievienot primārās slejas vērtības. Apskatīsim to.

Piemērs 01:

Izveidojiet tabulas testu ar divām kolonnām id un nosaukums. Kolonnas ID ir definēts kā primārās atslēgas sleja, jo tās datu tips ir SERIAL. No otras puses, kolonnas nosaukums ir definēts kā datu tips TEXT NOT NULL. Izmēģiniet zemāk esošo komandu, lai izveidotu tabulu, un tabula tiks izveidota efektīvi, kā redzams attēlā zemāk.



>>IZVEIDOT TABULU Tests( idSĒRIJAS PRIMĀRĀ ATSLĒGA, nosaukums TEKSTS NAV NULL);

Ievietosim dažas vērtības jaunizveidotās tabulas TEST slejas nosaukumā. Mēs nepievienosim nekādu vērtību kolonnas ID. Jūs varat redzēt, ka vērtības ir veiksmīgi ievietotas, izmantojot komandu INSERT, kā norādīts zemāk.

>>INSERT INTO Tests(vārds)VĒRTĪBAS('Aqsa'),('Rimša'),('Khan');

Ir pienācis laiks pārbaudīt tabulas “Tests” ierakstus. Izmēģiniet tālāk norādīto SELECT komandu apvalkā.

>>SELECT*NO Testa;

Tālāk redzamajā iznākumā varat pamanīt, ka kolonnas ID tajā ir automātiski iekļautas dažas vērtības, lai gan mēs neesam pievienojuši nevienu vērtību no komandas INSERT kolonnas ID norādītā datu tipa SERIAL dēļ. Šādi datu tips SERIAL darbojas atsevišķi.

02 piemērs:

Vēl viens veids, kā pārbaudīt slejas SERIAL vērtību, ir izmantot RETURNING atslēgvārdu komandā INSERT. Tālāk norādītā deklarācija izveido jaunu rindu testa tabulā un dod vērtību ID laukam:

>>INSERT INTO Tests(vārds)VĒRTĪBAS('Hassam')ATGRIEŠANĀSid;

Pārbaudot tabulas Testa ierakstus, izmantojot vaicājumu SELECT, mēs saņēmām zemāk redzamo rezultātu, kā parādīts attēlā. Piektais ieraksts ir efektīvi pievienots tabulai.

>>SELECT*NO Testa;

03 piemērs:

Iepriekš minētā ievietošanas vaicājuma alternatīvā versija izmanto atslēgvārdu DEFAULT. Mēs izmantosim kolonnas ID nosaukumu komandā INSERT, un sadaļā VĒRTĪBAS mēs piešķirsim tam noklusējuma atslēgvārdu kā vērtību. Zemāk esošais vaicājums pēc izpildes darbosies tāpat.

>>INSERT INTO Tests(id, vārds)VĒRTĪBAS(DEFAULT, 'Race');

Pārbaudīsim tabulu vēlreiz, izmantojot vaicājumu SELECT šādi:

>>SELECT*NO Testa;

Tālāk redzamajā iznākumā var redzēt, ka jaunā vērtība ir pievienota, bet kolonnas ID pēc noklusējuma ir palielināts.

04 piemērs:

Kolonnas lauka SERIAL kārtas kārtas numuru var atrast PostgreSQL tabulā. Lai to paveiktu, tiek izmantota metode pg_get_serial_sequence (). Mums ir jāizmanto funkcija currval () kopā ar metodi pg_get_serial_sequence (). Šajā vaicājumā funkcijas pg_get_serial_sequence () parametros mēs norādīsim tabulas nosaukumu un tās SĒRIJAS nosaukumu. Kā redzat, mēs esam norādījuši tabulu Tests un kolonnas ID. Šī metode tiek izmantota zemāk esošajā vaicājuma piemērā:

>>SELECT līkne(pg_get_serial_sequence('Pārbaude', 'id'));

Ir vērts atzīmēt, ka mūsu currval () funkcija palīdz iegūt secības jaunāko vērtību, kas ir 5. Zemāk redzamais attēls ilustrē, kā varētu izskatīties izpildījums.

Secinājums:

Šajā rokasgrāmatas apmācībā mēs esam parādījuši, kā izmantot SERIAL pseido tipu, lai automātiski palielinātu PostgreSQL. Izmantojot sēriju PostgreSQL, ir vienkārši izveidot automātiski pieaugošu skaitļu kopu. Cerams, ka tabulas aprakstiem varēsit izmantot lauku SĒRIJA, izmantojot mūsu ilustrācijas kā atsauci.