viernes, 11 de noviembre de 2016

Postgres - INSERT en tabla con SECUENCIA definida

Ejemplo:

CREATE TABLE table (id int, nombre varchar);

CREATE SEQUENCE table_id_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 100
  CACHE 1;

ALTER TABLE table_id_seq
  OWNER TO postgres;

Insertando un registro:

INSERT INTO table (id, nombre) values (nextval('table_id_seq'), 'pio');

Si el campo id de table fue creado como tipo "serial" también inserta con default:

INSERT INTO table (id, nombre) values (default, 'pio');

Insertando registros desde otra tabla:

INSERT INTO table
   (SELECT nextval('table_id_seq'), nombre2 FROM table2)

Asignando nuevo valor de inicio (START):

SELECT setval('table_id_seq', 700);

EL siguiente 'nextval' será 701



No hay comentarios.:

Publicar un comentario