Restablecer el contador de incremento automático en postgres

Resuelto Rad asked hace 13 años • 18 respuestas

Me gustaría forzar el campo de incremento automático de una tabla a algún valor, probé con esto:

ALTER TABLE product AUTO_INCREMENT = 1453

Y

ALTER SEQUENCE product  RESTART WITH 1453;
ERROR:  relation "your_sequence_name" does not exist

tengo una mesa productcon Idun namecampo

Rad avatar Mar 17 '11 23:03 Rad
Aceptado

Si creó la tabla productcon una idcolumna, entonces la secuencia no se llama simplemente product, sino product_id_seq(es decir, ${table}_${column}_seq).

Este es el ALTER SEQUENCEcomando que necesitas:

ALTER SEQUENCE product_id_seq RESTART WITH 1453

Puedes ver las secuencias en tu base de datos usando el \dscomando en psql. Si lo hace \d producty observa la restricción predeterminada para su columna, la nextval(...)llamada también especificará el nombre de la secuencia.

araqnid avatar Mar 17 '2011 17:03 araqnid

El siguiente comando hace esto automáticamente por usted: Esto también eliminará todos los datos de la tabla. Así que ten cuidado.

TRUNCATE TABLE someTable RESTART IDENTITY;
Loolooii avatar Aug 05 '2013 14:08 Loolooii

Aquí está el comando que está buscando, asumiendo que su secuencia para la tabla de productos es product_id_seq:

ALTER SEQUENCE product_id_seq RESTART WITH 1453;
matt snider avatar Feb 07 '2013 19:02 matt snider