Cita: entonces por alguna razon la secuencia queda en un valor por ejemplo de 9203 y cuando voy a realizar el siguiente insert me da error por el primary key
Porque cuando se tiene un campo serial y se inserta un valor manualmente, la secuencia no se modifica. La secuencia solo se modifica en el momento en que se inserta automáticamente haciendo uso del campo.
Entonces... los primeros valores te los inserta bien, pero al tratar de volver a insertar valores ya existentes, te va a dar un problema de primary keys.
Esto lo puedes comprobar con el siguiente ejemplo en el cual si utilizamos por defecto el valor de la secuencia
Código SQL:
Ver originalpruebas=> SELECT *FROM generando;
nro | campo1 | campo2
-----+--------+--------
(0 filas)
pruebas=> INSERT INTO generando (campo1,campo2) SELECT generate_series(1,5),2;
INSERT 0 5
pruebas=> INSERT INTO generando (campo1,campo2) SELECT generate_series(1,5),2;
INSERT 0 5
pruebas=> INSERT INTO generando (campo1,campo2) SELECT generate_series(1,5),2;
INSERT 0 5
pruebas=> SELECT *FROM generando;
nro | campo1 | campo2
-----+--------+--------
1 | 1 | 2
2 | 2 | 2
3 | 3 | 2
4 | 4 | 2
5 | 5 | 2
6 | 1 | 2
7 | 2 | 2
8 | 3 | 2
9 | 4 | 2
10 | 5 | 2
11 | 1 | 2
12 | 2 | 2
13 | 3 | 2
14 | 4 | 2
15 | 5 | 2
(15 filas)
pruebas=>
Saludos wpersei