Por alguna razón, las personas en el pasado han insertado datos sin usar sequence.NEXTVAL. Entonces cuando voy a usar sequence.NEXTVAL para llenar una tabla, recibo una violación de PK, ya que ese número ya está en uso en la tabla.¿La mejor manera de restablecer una secuencia de Oracle al siguiente valor en una columna existente?
¿Cómo puedo actualizar el siguiente valor para que se pueda utilizar? En este momento, solo estoy insertando una y otra vez hasta que sea exitoso (INSERT INTO tbl (pk) VALUES (sequence.NEXTVAL)
), y eso sincroniza el nextval.
@rationalSpring Terminé decidiendo dejar caer y recrear la secuencia. –
Ver [esta pregunta similar] (http://stackoverflow.com/questions/6057191/sequence-creation-in-oracle/6057249#6057249) –
El problema con el descarte y la recreación de la secuencia es que debe volver a aplicar cualquier otorga en él (sin mencionar que invalida temporalmente cualquier vista o PL/SQL que se refiera a ella). –