Kuidas seadistada PostgreSQL automaatse suurendamise primaarvõtit?

How Setup Postgresql Auto Increment Primary Key



Võib juhtuda, et koostate ja hooldate PostgreSQL -is tabeleid, kui soovite soovi korral loodud veeru jaoks konkreetseid väärtusi. See kehtib eriti id -veergude kohta, mis toimivad tabeli esmase võtmena. Õnneks võimaldab SERIAL pseudotüüp muuta automaatselt kasvava täisarvu seeria mugavaks. Seeria on teatud tüüpi andmebaasiobjekt PostgreSQL -is, mis toodab rida indekseid või täisarvu. PostgreSQL jada loob rea täisarvu, mis muudab selle uue tabeli genereerimisel primaarvõtmeks sobivaks. Näitame teile, milliseid automaatse suurendamise menüüsid PostgreSQL-is kasutame ja selles juhendis kasutame SERIAL pseudotüüpi.

Süntaks:

Automaatse juurdekasvu primaarvõtme loomise üldine süntaks on järgmine:







>>LOO TABEL tabeli_nimi( idSERIAL);

Vaatame nüüd üksikasjalikumalt CREATE TABLE deklaratsiooni:



  • PostgreSQL loob kõigepealt seeriaüksuse. See loob seeria järgmise väärtuse ja määrab selle välja vaikimisi võrdlusväärtuseks.
  • PostgreSQL rakendab ID -väljale kaudse piirangu NOT NULL, kuna seeria toodab arvväärtusi.
  • ID -väli eraldatakse sarja omanikuna. Kui id -väli või tabel ise välja jäetakse, jäetakse järjestus kõrvale.

Automaatse suurendamise kontseptsiooni saamiseks veenduge enne selle juhendi illustratsioonidega jätkamist, et teie süsteemile oleks paigaldatud ja konfigureeritud PostgreSQL. Avage töölaualt PostgreSQL käsurea kest. Lisage oma serveri nimi, mille kallal soovite töötada, vastasel juhul jätke see vaikimisi. Kirjutage andmebaasi nimi, mis asub teie serveris, mille kallal soovite töötada. Kui te ei soovi seda muuta, jätsite selle vaikimisi. Kasutame testide andmebaasi, sellepärast oleme selle lisanud. Võite töötada ka vaikimisi kasutatava pordi 5432 kallal, kuid saate seda ka muuta. Lõpuks peate andma valitud andmebaasi kasutajanime. Jätke see vaikimisi, kui te ei soovi seda muuta. Sisestage valitud kasutajanime jaoks parool ja vajutage klaviatuurilt sisestusklahvi, et alustada käsukesta kasutamist.







SERIAL -märksõna kasutamine andmetüübina:

Tabeli loomisel ei lisa me tavaliselt esmase veeru väljale märksõna SERIAL. See tähendab, et peame INSERT -lause kasutamisel lisama väärtused esmase võtme veergu. Kui aga kasutame tabeli loomisel oma päringus märksõna SERIAL, ei peaks me väärtuste sisestamisel lisama esmase veeru väärtusi. Heidame sellele pilgu.

Näide 01:

Loo tabelitest kahe veeruga id ja nimi. Veeru ID on määratletud esmase võtme veeruna, kuna selle andmetüüp on SERIAL. Teisest küljest on veeru nimi määratletud kui andmetüüp TEXT NOT NULL. Tabeli loomiseks proovige allolevat käsku ja tabel luuakse tõhusalt, nagu on näha alloleval pildil.



>>TABELI LOOMINE Test( idSERIAL PRIMARY Key, nimi TEXT NOT NULL);

Lisame äsja loodud tabeli TEST veerunimele mõned väärtused. Me ei lisa veeru ID -le mingit väärtust. Näete, et väärtused on edukalt sisestatud, kasutades käsku INSERT, nagu allpool kirjeldatud.

>>INSERT INTO Test(nimi)VÄÄRTUSED('Aqsa'),('Rimsha'),('Khan');

On aeg kontrollida tabeli „Test” kirjeid. Proovige allolevat käsku SELECT käsukorras.

>>VALI*Alates testist;

Alltoodud väljundist näete, et veeru ID -l on automaatselt mõned väärtused, isegi kui me pole lisanud käsu INSERT väärtusi veeru ID jaoks määratud andmetüübi SERIAL tõttu. Nii töötab andmetüüp SERIAL iseenesest.

Näide 02:

Teine viis veeru SERIAL andmetüübi väärtuse kontrollimiseks on käsu INSERT võtmesõna RETURNING kasutamine. Allolev deklaratsioon loob testitabelisse uue rea ja annab välja ID väärtuse:

>>INSERT INTO Test(nimi)VÄÄRTUSED('Hassam')TAGASIid;

Kontrollides tabeli Test kirjeid, kasutades päringut SELECT, saime alloleva väljundi, nagu pildil näidatud. Viies rekord on tabelisse tõhusalt lisatud.

>>VALI*Alates testist;

Näide 03:

Ülaltoodud sisestuspäringu alternatiivne versioon kasutab DEFAULT märksõna. Kasutame käsus INSERT veeru ID nime ja jaotises VÄÄRTUSED anname selle väärtuseks vaikimisi märksõna. Allolev päring töötab täitmisel sama.

>>INSERT INTO Test(id, nimi)VÄÄRTUSED(DEFAULT, 'Race');

Kontrollime tabelit uuesti, kasutades päringut SELECT järgmiselt.

>>VALI*Alates testist;

Alltoodud väljundist näete, et uus väärtus on lisatud, samas kui veeru ID on vaikimisi suurendatud.

Näide 04:

Veeruvälja SERIAL järjekorranumbri leiate PostgreSQL -i tabelist. Selle saavutamiseks kasutatakse meetodit pg_get_serial_sequence (). Peame kasutama funktsiooni currval () koos meetodiga pg_get_serial_sequence (). Sellel päringul esitame funktsiooni pg_get_serial_sequence () parameetrites tabeli nime ja selle SERIAL veeru nime. Nagu näete, oleme määranud tabeli Test ja veeru ID. Seda meetodit kasutatakse allolevas päringu näites:

>>VALI kõver(pg_get_serial_sequence('Test', 'id'));

Väärib märkimist, et meie currval () funktsioon aitab meil välja võtta jada viimase väärtuse, mis on 5. Allolev pilt illustreerib, milline esitus võiks välja näha.

Järeldus:

Selles juhendis oleme näidanud, kuidas kasutada SERIAL pseudotüüpi automaatseks suurendamiseks PostgreSQL-is. Kasutades PostgreSQL-i seeriat, on lihtne luua automaatselt kasvav numbrikomplekt. Loodetavasti saate välja SERIAL tabeli kirjeldustele rakendada, kasutades meie illustratsioone viitena.