Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/02/2010, 14:24
Avatar de wpersei
wpersei
 
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: problema campo serial no incrementa completamente cuando insert con genera

gracias por responder


creo que no me he hecho entender:

supongamos que tengo una tabla "generando" con 4 campos

id -> llave primaria y campo serial
nro -> numero que quiero insertar con generate series
campo1 -> otro campo para agregar en el select
campo2 -> otro campo para agregar en el select


entonces

cuando hago

Código SQL:
Ver original
  1. INSERT INTO generando (nro, campo1, campo2)
  2. SELECT generate_series(1,5),1, 2;

como puedes ver dejo que la secuencia trabaje ya que no le indico cual es el valor de la llave primaria, según el insert si no tuviéramos ningun valor en la tabla y la secuencia iniciara en 1 el valor de la secuencia después del insert seria 6, pero el problema es que cuando la serie es algo grande a veces queda valiendo un numero menor como por decir algo = 3

ahí el problema que como los insert cuyo primarykey es una secuencia, leen de ahi para insertar el dato entonces dan error

la solución que he hecho es que una vez se termina de insertar vuelvo a establecer el valor de la secuencia de esta forma:
Código SQL:
Ver original
  1. SELECT SETVAL('public.generando_id_seq', 6,  TRUE);

pero la verdad es una solución que no me gusta

mas bien quisiera saber porque ocurre y de ahí de pronto encontrar una solución o talves yo este haciendo algo indebido

saludos
__________________
www.ogallardo.com - Mi blog