Com es configura la clau primària d'increment automàtic de PostgreSQL?

How Setup Postgresql Auto Increment Primary Key



Hi pot haver ocasions en què creeu i mantingueu taules a PostgreSQL quan vulgueu valors específics per a una columna que es genera a petició. Això seria particularment cert per a les columnes d'identificació que actuen com a clau principal de la taula. Per sort, el pseudo-tipus SERIAL permet fer convenient una sèrie sencera amb increments automàtics. Una sèrie és un tipus d'objecte de base de dades a PostgreSQL que produeix una sèrie d'índexs o enters. Una seqüència PostgreSQL produeix una cadena de nombres enters diferents, cosa que el fa adequat per utilitzar-se com a clau principal quan es genera una nova taula. Us demostrarem quins menes d’increment automàtic a PostgreSQL farem servir el pseudo-tipus SERIAL al llarg d’aquesta guia.

Sintaxi:

La sintaxi general per crear la clau primària d’increment automàtic és la següent:







>>CREA TABLE nom_tabla( identificadorSÈRIE);

Vegem ara la declaració CREATE TABLE amb més detall:



  • PostgreSQL genera primer una entitat de sèrie. Produeix el següent valor de la sèrie i el defineix com a valor de referència predeterminat del camp.
  • PostgreSQL aplica la restricció implícita NOT NULL a un camp d'identificador ja que una sèrie produeix valors numèrics.
  • El camp d'identificació s'assignarà com a titular de la sèrie. Si s'omet el camp d'identificació o la pròpia taula, la seqüència es descartarà.

Per obtenir el concepte d’increment automàtic, assegureu-vos que PostgreSQL està muntat i configurat al vostre sistema abans de continuar amb les il·lustracions d’aquesta guia. Obriu l’intèrpret d’ordres de la línia d’ordres PostgreSQL des de l’escriptori. Afegiu el nom del servidor al qual vulgueu treballar; en cas contrari, deixeu-lo per defecte. Escriviu el nom de la base de dades que hi ha al servidor en el qual voleu treballar. Si no voleu canviar-lo, deixeu-lo com a predeterminat. Farem servir la base de dades de proves, per això l’hem afegida. També podeu treballar al port 5432 per defecte, però també el podeu canviar. Al final, heu de proporcionar el nom d’usuari de la base de dades que trieu. Deixeu-lo per defecte si no voleu canviar-lo. Escriviu la vostra contrasenya per al nom d'usuari seleccionat i premeu Retorn des del teclat per començar a utilitzar l'intèrpret d'ordres.







Utilitzant la paraula clau SERIAL com a tipus de dades:

Quan creem una taula, normalment no afegim la paraula clau SERIAL al camp de la columna principal. Això significa que hem d'afegir els valors a la columna de la clau principal mentre s'utilitza la instrucció INSERT. Però quan utilitzem la paraula clau SERIAL a la nostra consulta mentre creavem una taula, no hauríem d’afegir valors de columna primària mentre inserim els valors. Fem-hi una ullada.

Exemple 01:

Creeu una prova de taula amb identificador i nom de dues columnes. L'identificador de columna s'ha definit com la columna de clau principal ja que el seu tipus de dades és SERIAL. D'altra banda, el nom de la columna es defineix com el tipus de dades TEXT NOT NULL. Proveu l'ordre següent per crear una taula i la taula es crearà de manera eficient, tal com es veu a la imatge següent.



>>Prova CREA TAULA( identificadorCLAU PRIMÀRIA SERIAL, nom TEXT NO NUL);

Inserim alguns valors al nom de la columna de la taula TEST recentment creada. No afegirem cap valor a l'identificador de columna. Podeu veure que els valors s’han inserit amb èxit mitjançant l’ordre INSERT tal com s’indica a continuació.

>>INSERT INTO Test(nom)VALORS('Aqsa'),('Rimsha'),('Khan');

És hora de revisar els registres de la taula ‘Prova’. Proveu la instrucció SELECT següent a l'intèrpret d'ordres.

>>SELECCIONA*FROM Prova;

A la sortida següent, podeu notar que l’identificador de columna conté automàticament alguns valors, tot i que no hem afegit cap valor de l’ordre INSERT a causa del tipus de dades SERIAL que hem especificat per a l’identificador de columna. Així funciona el tipus de dades SERIAL per si sol.

Exemple 02:

Una altra manera de comprovar el valor de la columna del tipus de dades SERIAL és mitjançant la paraula clau RETURNING a l’ordre INSERT. La declaració següent crea una nova línia a la taula de prova i proporciona el valor del camp id:

>>INSERT INTO Test(nom)VALORS('Hassam')TORNANTidentificador;

En comprovar els registres de la taula Prova mitjançant la consulta SELECT, obtenim la sortida següent tal com es mostra a la imatge. El cinquè registre s’ha afegit de manera eficient a la taula.

>>SELECCIONA*FROM Prova;

Exemple 03:

La versió alternativa de la consulta d’inserció anterior utilitza la paraula clau DEFAULT. Utilitzarem el nom d’identificador de columna a l’ordre INSERT i, a la secció VALURES, li donarem la paraula clau DEFAULT com a valor. La consulta següent funcionarà igual en executar-la.

>>INSERT INTO Test(identificador, nom)VALORS(DEFAULT, 'Raça');

Tornem a comprovar la taula mitjançant la consulta SELECT de la manera següent:

>>SELECCIONA*FROM Prova;

Podeu veure a la sortida següent, el valor nou s’ha afegit mentre l’identificador de columna s’ha incrementat per defecte.

Exemple 04:

El número de seqüència del camp de columna SERIAL es pot trobar en una taula de PostgreSQL. Per aconseguir-ho s’utilitza el mètode pg_get_serial_sequence (). Hem d’utilitzar la funció currval () juntament amb el mètode pg_get_serial_sequence (). En aquesta consulta, proporcionarem el nom de la taula i el seu nom de columna SERIAL als paràmetres de la funció pg_get_serial_sequence (). Com podeu veure, hem especificat la taula Prova i identificador de columna. Aquest mètode s'utilitza a l'exemple de consulta següent:

>>SELECCIONA currval(pg_get_serial_sequence('Prova', 'identificador'));

Val a dir que la nostra funció currval () ens ajuda a extreure el valor més recent de la seqüència, que és 5. La imatge següent és una il·lustració de l’aspecte del rendiment.

Conclusió:

En aquest tutorial de la guia, hem demostrat com utilitzar el pseudo-tipus SERIAL per augmentar automàticament a PostgreSQL. Utilitzant una sèrie a PostgreSQL, és senzill crear un conjunt de números que s’incrementin automàticament. Amb sort, podreu aplicar el camp SERIAL a les descripcions de la taula fent servir les nostres il·lustracions com a referència.