Saltar al contenido

PostgreSQL – INCREMENTO AUTOMÁTICO

septiembre 29, 2021

PostgreSQL tiene los tipos de datos pequeña serie, serial y bigserial; estos no son tipos verdaderos, sino simplemente una conveniencia de notación para crear columnas de identificador único. Son similares a la propiedad AUTO_INCREMENT admitida por algunas otras bases de datos.

Si deseas un de serie columna para tener una restricción única o ser una clave principal, ahora debe especificarse, como cualquier otro tipo de datos.

El nombre del tipo de serie crea un entero columnas. El nombre del tipo bigserial crea un Empezando columna. bigserial debe usarse si prevé el uso de más de 231 identificadores durante la vida útil de la tabla. El nombre del tipo pequeña serie crea un pequeño columna.

Sintaxis

El uso básico de DE SERIE El tipo de datos es el siguiente:

CREATE TABLE tablename (
   colname SERIAL
);

Ejemplo

Considere que la tabla EMPRESA se creará de la siguiente manera:

testdb=# CREATE TABLE COMPANY(
   ID  SERIAL PRIMARY KEY,
   NAME           TEXT      NOT NULL,
   AGE            INT       NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Ahora, inserte los siguientes registros en la tabla EMPRESA –

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ('Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'David', 27, 'Texas', 85000.00 );


INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'Kim', 22, 'South-Hall', 45000.00 );

INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY)
VALUES ( 'James', 24, 'Houston', 10000.00 );

Esto insertará siete tuplas en la tabla EMPRESA y EMPRESA tendrá los siguientes registros:

 id | name  | age | address    | salary
----+-------+-----+------------+--------
  1 | Paul  |  32 | California |  20000
  2 | Allen |  25 | Texas      |  15000
  3 | Teddy |  23 | Norway     |  20000
  4 | Mark  |  25 | Rich-Mond  |  65000
  5 | David |  27 | Texas      |  85000
  6 | Kim   |  22 | South-Hall |  45000
  7 | James |  24 | Houston    |  10000
close