Kako postaviti primarni ključ za automatsko povećanje PostgreSQL-a?

How Setup Postgresql Auto Increment Primary Key



Mogu se dogoditi situacije u kojima sastavljate i održavate tablice u PostgreSQL -u kada želite određene vrijednosti za stupac koji se generira na zahtjev. To bi osobito vrijedilo za stupce id koji djeluju kao primarni ključ tablice. Srećom, pseudo-tip SERIAL omogućuje prikladnim automatsko uvećanje cijelog niza. Niz je vrsta objekta baze podataka u PostgreSQL -u koji proizvodi niz indeksa ili cijelih brojeva. PostgreSQL niz proizvodi niz različitih cijelih brojeva, što ga čini prikladnim za upotrebu kao primarni ključ pri generiranju nove tablice. Pokazat ćemo vam koje su metode automatskog povećanja u PostgreSQL-u, a mi ćemo koristiti SERIAL pseudo-tip u ovom vodiču.

Sintaksa:

Opća sintaksa za stvaranje primarnog ključa s automatskim povećanjem je sljedeća:







>>CREATE TABLE table_name( iskaznicaSERIJSKI);

Pogledajmo sada detaljnije deklaraciju CREATE TABLE:



  • PostgreSQL prvo generira entitet serije. Ona proizvodi sljedeću vrijednost u nizu i postavlja je kao zadanu referentnu vrijednost polja.
  • PostgreSQL primjenjuje implicitno ograničenje NOT NULL na polje id jer niz proizvodi numeričke vrijednosti.
  • Polje id bit će dodijeljeno kao držač niza. Ako je polje id ili sama tablica izostavljeno, slijed će se odbaciti.

Da biste dobili koncept automatskog povećanja, provjerite je li PostgreSQL montiran i konfiguriran na vašem sustavu prije nego nastavite s ilustracijama u ovom vodiču. Otvorite ljusku naredbenog retka PostgreSQL s radne površine. Dodajte naziv poslužitelja na kojem želite raditi, inače ga ostavite zadanim. Napišite ime baze podataka koja se nalazi na vašem poslužitelju na kojem želite raditi. Ako je ne želite promijeniti, ostavite je kao zadanu. Koristit ćemo testnu bazu podataka, zato smo je dodali. Također možete raditi na zadanom portu 5432, ali ga možete i promijeniti. Na kraju morate unijeti korisničko ime za bazu podataka koju odaberete. Ostavite ga na zadano ako ga ne želite promijeniti. Upišite svoju lozinku za odabrano korisničko ime i pritisnite Enter s tipkovnice za početak korištenja naredbene ljuske.







Korištenje SERIAL ključne riječi kao vrste podataka:

Kad stvaramo tablicu, obično ne dodajemo ključnu riječ SERIAL u polje primarnog stupca. To znači da moramo dodati vrijednosti u stupac primarnog ključa dok koristimo izraz INSERT. No, kada koristimo ključnu riječ SERIAL u svom upitu prilikom stvaranja tablice, ne bismo trebali dodavati vrijednosti primarnog stupca prilikom umetanja vrijednosti. Pogledajmo to malo.

Primjer 01:

Napravite tablični test s dva stupca id i ime. ID stupca definiran je kao stupac primarnog ključa jer je njegov tip podataka SERIAL. S druge strane, naziv stupca definiran je kao tip podataka TEXT NOT NULL. Isprobajte naredbu ispod za stvaranje tablice i tablica će biti učinkovito stvorena kao što se vidi na donjoj slici.



>>CREATE TABLE Test( iskaznicaSERIJSKI PRIMARNI KLJUČ, naziv TEKST NIJE NULL);

Umetnimo neke vrijednosti u naziv stupca novonastale tablice TEST. ID -u stupca nećemo dodati nikakvu vrijednost. Možete vidjeti da su vrijednosti uspješno umetnute pomoću naredbe INSERT kako je dolje navedeno.

>>INSERT INTO Test(Ime)VRIJEDNOSTI('Aksa'),('Rimša'),('Kan');

Vrijeme je da provjerite zapise tablice 'Test'. Isprobajte dolje navedene upute SELECT u ljusci naredbe.

>>ODABERI*IZ Testa;

Iz donjeg izlaza možete primijetiti da id stupca automatski ima neke vrijednosti u sebi iako nismo dodali nikakve vrijednosti iz naredbe INSERT zbog tipa podataka SERIAL koji smo naveli za id stupca. Ovako tip podataka SERIAL radi sam.

Primjer 02:

Drugi način provjere vrijednosti stupca SERIAL tipa podataka je pomoću ključne riječi RETURNING u naredbi INSERT. Donja deklaracija stvara novi redak u testnoj tablici i daje vrijednost za polje id:

>>INSERT INTO Test(Ime)VRIJEDNOSTI('Hassam')POVRATAKiskaznica;

Provjerom zapisa tabličnog testa pomoću upita SELECT dobili smo donji izlaz kako je prikazano na slici. Peti zapis učinkovito je dodan u tablicu.

>>ODABERI*IZ Testa;

Primjer 03:

Alternativna verzija gornjeg upita za umetanje koristi ključnu riječ DEFAULT. U naredbi INSERT koristit ćemo naziv id stupca, au odjeljku VALUES dat ćemo mu ključnu riječ DEFAULT kao vrijednost. Upit u nastavku će isto raditi nakon izvršenja.

>>INSERT INTO Test(iskaznica, Ime)VRIJEDNOSTI(ZADNO, 'Utrka');

Ponovno provjerimo tablicu pomoću upita SELECT na sljedeći način:

>>ODABERI*IZ Testa;

Iz donjeg prikaza možete vidjeti da je nova vrijednost dodana dok je id stupca prema zadanim postavkama povećan.

Primjer 04:

Redni broj polja stupca SERIAL može se pronaći u tablici u PostgreSQL -u. Za to se koristi metoda pg_get_serial_sequence (). Moramo koristiti funkciju currval () zajedno s metodom pg_get_serial_sequence (). U ovom upitu dat ćemo naziv tablice i naziv stupca SERIAL u parametrima funkcije pg_get_serial_sequence (). Kao što vidite, naveli smo tablični test i id stupca. Ova metoda se koristi u sljedećem primjeru upita:

>>SELECT currval(pg_get_serial_sequence('Test', 'iskaznica'));

Vrijedi napomenuti da nam funkcija currval () pomaže pri izdvajanju najnovije vrijednosti niza, a to je 5. Slika ispod ilustrira kako bi izvedba mogla izgledati.

Zaključak:

U ovom vodiču smo pokazali kako koristiti pseudo-tip SERIAL za automatsko povećanje u PostgreSQL-u. Koristeći niz u PostgreSQL-u, jednostavno je izgraditi skup brojeva koji se automatski povećava. Nadamo se da ćete moći primijeniti polje SERIAL na opise tablice koristeći naše ilustracije kao referencu.