Me pregunto si todos estos son exactamente iguales o si hay alguna diferencia.¿Alguna diferencia en la forma en que se define una clave principal en Postgres?
Método 1:
CREATE TABLE testtable
(
id serial,
title character varying,
CONSTRAINT id PRIMARY KEY (id)
);
Método: 2
CREATE TABLE testtable
(
id serial PRIMARY KEY,
title character varying,
);
Método 3:
CREATE TABLE testtable
(
id integer PRIMARY KEY,
title character varying,
);
CREATE SEQUENCE testtable_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
ALTER SEQUENCE testtable_id_seq OWNED BY testtable.id;
Actualización: he encontrado algo en la web diciendo que mediante el uso de una prima secuencia puede preasignar memoria para claves primarias que ayuda si p lan haciendo varios miles de insertos en el próximo minuto.
Lo que me parece extraño es que no creó una tabla y luego creó la restricción primaria (por ejemplo 'CREATE TABLE (...);', 'ALTER TABLE ADD CONTSRAINT ...'), para fines de prueba. – vol7ron