Cum se configurează cheia primară pentru creșterea automată a PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Ar putea exista ocazii în care creați și întrețineți tabele în PostgreSQL când doriți valori speciale pentru o coloană care este generată la cerere. Acest lucru ar fi valabil în special pentru coloanele de identificare care acționează ca cheia principală a tabelului. Din fericire, pseudo-tipul SERIAL permite realizarea convenabilă a unei serii întregi cu incrementare automată. O serie este un tip de obiect de bază de date în PostgreSQL care produce o serie de indici sau numere întregi. O secvență PostgreSQL produce un șir de numere întregi distincte, făcându-l potrivit pentru a fi folosit ca cheie primară atunci când se generează o nouă tabelă. Vă vom demonstra ce meniuri de incrementare automată în PostgreSQL și vom folosi pseudo-tipul SERIAL în acest ghid.

Sintaxă:

Sintaxa generală pentru crearea cheii primare de incrementare automată este după cum urmează:





>>CREATE TABLE table_name( idSERIAL);

Să aruncăm o privire acum asupra declarației CREATE TABLE în detaliu:



  • PostgreSQL generează mai întâi o entitate de serie. Produce următoarea valoare din serie și o setează ca valoare de referință implicită a câmpului.
  • PostgreSQL aplică restricția implicită NOT NULL unui câmp id, deoarece o serie produce valori numerice.
  • Câmpul id va fi alocat ca titular al seriei. Dacă câmpul id sau tabelul în sine este omis, secvența va fi abandonată.

Pentru a obține conceptul de incrementare automată, asigurați-vă că PostgreSQL este montat și configurat pe sistemul dvs. înainte de a continua cu ilustrațiile din acest ghid. Deschideți shell-ul de linie de comandă PostgreSQL de pe desktop. Adăugați numele serverului pe care doriți să lucrați, altfel lăsați-l implicit. Scrieți numele bazei de date care se află pe serverul dvs. pe care doriți să lucrați. Dacă nu doriți să o modificați, lăsați-o ca implicită. Vom folosi baza de date de testare, de aceea am adăugat-o. De asemenea, puteți lucra la portul implicit 5432, dar îl puteți schimba și. În cele din urmă, trebuie să furnizați numele de utilizator pentru baza de date pe care o alegeți. Lăsați-o în mod implicit dacă nu doriți să o modificați. Tastați parola pentru numele de utilizator selectat și apăsați Enter de la tastatură pentru a începe să utilizați shell-ul de comandă.







Utilizarea cuvântului cheie SERIAL ca tip de date:

Când creăm un tabel, de obicei nu adăugăm cuvântul cheie SERIAL în câmpul coloanei principale. Aceasta înseamnă că trebuie să adăugăm valorile la coloana cheii primare în timp ce folosim instrucțiunea INSERT. Dar când folosim cuvântul cheie SERIAL în interogarea noastră în timp ce creăm un tabel, nu ar trebui să adăugăm valori de coloană primară în timp ce inserăm valorile. Să aruncăm o privire.

Exemplul 01:

Creați un tabel Test cu două coloane id și nume. Codul coloanei a fost definit ca coloana cheie primară, deoarece tipul său de date este SERIAL. Pe de altă parte, numele coloanei este definit ca tipul de date TEXT NOT NULL. Încercați comanda de mai jos pentru a crea un tabel și tabelul va fi creat eficient așa cum se vede în imaginea de mai jos.



>>Test CREATE TABLE( idCHEIE PRIMARĂ SERIALĂ, nume TEXT NU NUL);

Să introducem câteva valori în numele coloanei noului tabel TEST. Nu vom adăuga nicio valoare la codul coloanei. Puteți vedea că valorile au fost inserate cu succes folosind comanda INSERT așa cum se arată mai jos.

>>INSERT INTO Test(Nume)VALORI(„Aqsa”),(„Rimsha”),('Han');

Este timpul să verificați înregistrările tabelului „Test”. Încercați instrucțiunea SELECT de mai jos din shell-ul comenzii.

>>SELECTAȚI*FROM Test;

Din ieșirea de mai jos, puteți observa că ID-ul coloanei a primit automat câteva valori, chiar dacă nu am adăugat nicio valoare din comanda INSERT din cauza tipului de date SERIAL pe care l-am specificat pentru ID-ul coloanei. Așa funcționează singur tipul de date SERIAL.

Exemplul 02:

O altă modalitate de a verifica valoarea coloanei tipului de date SERIAL este utilizând cuvântul cheie RETURNING din comanda INSERT. Declarația de mai jos creează o nouă linie în tabelul Test și dă valoarea pentru câmpul id:

>>INSERT INTO Test(Nume)VALORI(„Hassam”)REVENIREid;

Verificând înregistrările tabelului Test utilizând interogarea SELECT, am obținut rezultatul de mai jos așa cum este afișat în imagine. Al cincilea record a fost adăugat în mod eficient la masă.

>>SELECTAȚI*FROM Test;

Exemplul 03:

Versiunea alternativă a interogării de inserare de mai sus utilizează cuvântul cheie DEFAULT. Vom folosi numele ID-ului coloanei în comanda INSERT, iar în secțiunea VALUES, îi vom da cuvântul cheie DEFAULT ca valoare. Interogarea de mai jos va funcționa la fel la executare.

>>INSERT INTO Test(id, Nume)VALORI(DEFAULT, „Race”);

Să verificăm din nou tabelul folosind interogarea SELECT, după cum urmează:

>>SELECTAȚI*FROM Test;

Puteți vedea din rezultatul de mai jos, noua valoare a fost adăugată în timp ce ID-ul coloanei a fost incrementat în mod implicit.

Exemplul 04:

Numărul secvenței câmpului coloanei SERIAL poate fi găsit într-un tabel în PostgreSQL. Metoda pg_get_serial_sequence () este utilizată pentru a realiza acest lucru. Trebuie să folosim funcția currval () împreună cu metoda pg_get_serial_sequence (). În această interogare, vom furniza numele tabelei și numele coloanei SERIAL în parametrii funcției pg_get_serial_sequence (). După cum puteți vedea, am specificat tabelul Test și codul coloanei. Această metodă este utilizată în exemplul de interogare de mai jos:

>>SELECTAȚI currval(pg_get_serial_sequence('Test', 'id'));

Este demn de remarcat faptul că funcția noastră currval () ne ajută să extragem cea mai recentă valoare a secvenței, care este 5. Imaginea de mai jos este o ilustrare a modului în care ar putea arăta performanța.

Concluzie:

În acest tutorial de ghid, am demonstrat cum se utilizează pseudo-tipul SERIAL pentru a crește automat în PostgreSQL. Folosind o serie în PostgreSQL, este simplu să creați un set de numere care se incrementează automat. Sperăm că veți putea aplica câmpul SERIAL descrierilor tabelelor folosind ilustrațiile noastre ca referință.