Kuinka määrittää PostgreSQL-automaattisen lisäyksen ensisijainen avain?

How Setup Postgresql Auto Increment Primary Key



Joskus voit luoda ja ylläpitää taulukoita PostgreSQL: ssä, kun haluat tiettyjä arvoja pyynnöstä luotavalle sarakkeelle. Tämä pätee erityisesti id -sarakkeisiin, jotka toimivat taulukon ensisijaisena avaimena. Onneksi SERIAL-pseudotyyppi mahdollistaa automaattisesti kasvavan kokonaislukusarjan tekemisen käteväksi. Sarja on PostgreSQL -tietokantaobjektityyppi, joka tuottaa sarjan indeksejä tai kokonaislukuja. PostgreSQL -sekvenssi tuottaa merkkijonon erillisiä kokonaislukuja, joten se soveltuu käytettäväksi ensisijaisena avaimena uuden taulukon luomisen yhteydessä. Näytämme sinulle, mitkä automaattiset lisäysvalikot PostgreSQL: ssä, ja käytämme SERIAL-pseudotyyppiä tässä oppaassa.

Syntaksi:

Yleinen syntaksi automaattisen lisäyksen ensisijaisen avaimen luomiseen on seuraava:







>>LUO TAULUKKO taulukon_nimi( idSARJA);

Katsotaanpa nyt tarkemmin CREATE TABLE -ilmoitusta:



  • PostgreSQL luo ensin sarjakokonaisuuden. Se tuottaa sarjan seuraavan arvon ja asettaa sen kentän oletusarvoksi.
  • PostgreSQL käyttää implisiittistä rajoitusta NOT NULL id -kenttään, koska sarja tuottaa numeerisia arvoja.
  • ID -kenttä osoitetaan sarjan haltijaksi. Jos id -kenttä tai itse taulukko jätetään pois, järjestys hylätään.

Jotta saat käsityksen automaattisesta lisäyksestä, varmista, että PostgreSQL on asennettu ja määritetty järjestelmääsi, ennen kuin jatkat tämän oppaan kuvien käyttöä. Avaa PostgreSQL-komentorivikuori työpöydältä. Lisää palvelimen nimi, jonka kanssa haluat työskennellä, muussa tapauksessa jätä se oletusarvoksi. Kirjoita tietokannan nimi palvelimellesi, jonka kanssa haluat työskennellä. Jos et halua muuttaa sitä, jätä se oletusarvoksi. Käytämme testitietokantaa, siksi olemme lisänneet sen. Voit myös työskennellä oletusportilla 5432, mutta voit myös muuttaa sitä. Lopuksi sinun on annettava valitsemasi tietokannan käyttäjänimi. Jätä oletusarvoksi, jos et halua muuttaa sitä. Kirjoita salasana valitulle käyttäjätunnukselle ja paina Enter -näppäintä aloittaaksesi komentokuoren käytön.







SERIAL -avainsanan käyttäminen tietotyypinä:

Kun luomme taulukon, emme yleensä lisää avainsanaa SARJA ensisijaiseen sarakekenttään. Tämä tarkoittaa, että meidän on lisättävä arvot ensisijaisen avaimen sarakkeeseen INSERT -käskyä käytettäessä. Mutta kun käytämme avainsanaa SERIAL kyselyssämme luodessamme taulukkoa, meidän ei tarvitse lisätä ensisijaisia ​​sarakearvoja, kun lisäämme arvoja. Katsotaanpa sitä.

Esimerkki 01:

Luo taulukkotesti, jossa on kaksi saraketta id ja nimi. Sarakkeen tunnus on määritetty ensisijaiseksi avainsarakkeeksi, koska sen tietotyyppi on SERIAL. Toisaalta sarakkeen nimi määritellään TEKSTI EI NULL -tyyppiseksi. Luo taulukko yrittämällä alla olevaa komentoa, ja taulukko luodaan tehokkaasti alla olevan kuvan mukaisesti.



>>LUO TAULUKKO Testi( idSERIAL PRIMARY AVAIN, nimi TEKSTI EI NULL);

Lisätään joitakin arvoja äskettäin luotun taulukon TEST sarakkeen nimeen. Emme lisää arvoa sarakkeen tunnukseen. Näet, että arvot on lisätty onnistuneesti käyttämällä INSERT -komentoa alla kuvatulla tavalla.

>>INSERT INTO Testi(nimi)ARVOT('Aqsa'),('Rimsha'),('Khan');

On aika tarkistaa taulukon 'Testi' tietueet. Kokeile alla olevaa SELECT -komentoa komentokuorissa.

>>VALITSE*FROM -testistä;

Alla olevasta tulostuksesta huomaat, että sarakkeen tunnus on saanut automaattisesti joitain arvoja, vaikka emme ole lisänneet mitään INSERT -komennon arvoja sarakkeen tunnukselle määrittämämme tietotyypin SERIAL vuoksi. Näin tietotyyppi SERIAL toimii itsenäisesti.

Esimerkki 02:

Toinen tapa tarkistaa SERIAL -tyyppisarakkeen arvo on käyttää INSERT -komennon RETURNING -avainsanaa. Alla oleva ilmoitus luo uuden rivin testitaulukkoon ja antaa arvon id -kentälle:

>>INSERT INTO Testi(nimi)ARVOT('Hassam')PALAUTUSid;

Tarkastamalla taulukon Test tietueet SELECT -kyselyn avulla saimme alla olevan tuloksen, kuten kuvassa näkyy. Viides ennätys on lisätty tehokkaasti taulukkoon.

>>VALITSE*FROM -testistä;

Esimerkki 03:

Edellä olevan lisäyskyselyn vaihtoehtoinen versio käyttää DEFAULT -avainsanaa. Käytämme INSERT -komennon sarakkeen tunnuksen nimeä ja VALUES -osiossa sen oletusarvoisen avainsanan arvoksi. Alla oleva kysely toimii samalla tavalla suoritettaessa.

>>INSERT INTO Testi(id, nimi)ARVOT(DEFAULT, 'Race');

Tarkistetaan taulukko uudelleen SELECT -kyselyn avulla seuraavasti:

>>VALITSE*FROM -testistä;

Alla olevasta tuotoksesta näet, että uusi arvo on lisätty, kun sarakkeen tunnus on oletuksena lisätty.

Esimerkki 04:

SERIAL -sarakekentän järjestysnumero löytyy PostgreSQL -taulukosta. Tätä varten käytetään menetelmää pg_get_serial_sequence (). Meidän on käytettävä currval () -funktiota yhdessä pg_get_serial_sequence () -menetelmän kanssa. Tässä kyselyssä annamme taulukon nimen ja sen SARJAN sarakkeen nimen funktion pg_get_serial_sequence () parametreihin. Kuten näette, olemme määrittäneet taulukon Testi ja sarakkeen tunnus. Tätä menetelmää käytetään alla olevassa kyselyesimerkissä:

>>VALITSE käyrä(pg_get_serial_sequence('Testi', 'id''));

On syytä huomata, että currval () -funktiomme auttaa meitä poimimaan sarjan viimeisimmän arvon, joka on 5. Alla oleva kuva on esimerkki siitä, miltä esitys voisi näyttää.

Johtopäätös:

Tässä opasoppaassa olemme osoittaneet, kuinka käyttää SERIAL-pseudotyyppiä automaattiseen lisäykseen PostgreSQL: ssä. PostgreSQL-sarjan avulla on helppo rakentaa automaattisesti kasvava numerosarja. Toivottavasti voit käyttää SERIAL -kenttää taulukon kuvauksissa käyttämällä kuvituksiamme viitteenä.