tabla serial secuencia resetear reiniciar postgres contador campo auto_increment sql postgresql reset auto-increment

serial - reiniciar secuencia postgresql



Restablecer contador de incremento automático en postgres (7)

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

ALTER SEQUENCE product_id_seq REINICIAR CON 1453;

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

ALTER TABLE product AUTO_INCREMENT = 1453

Y

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

Soy nuevo en postgres :(

Tengo un product mesa con Id y campo de name


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

TRUNCATE TABLE someTable RESTART IDENTITY;


Para configurar el contador de secuencia:

setval(''product_id_seq'', 1453);

Si no conoce el nombre de la secuencia, use la función pg_get_serial_sequence :

select pg_get_serial_sequence(''product'', ''id''); pg_get_serial_sequence ------------------------ public.product_id_seq

Los parámetros son el nombre de la tabla y el nombre de la columna.

O simplemente emita un /d product en el indicador psql :

=> /d product Table "public.product" Column | Type | Modifiers --------+---------+------------------------------------------------------ id | integer | not null default nextval(''product_id_seq''::regclass) name | text |


Para restablecer el incremento automático, debe obtener el nombre de su secuencia utilizando la siguiente consulta.

Sintaxis:

SELECT pg_get_serial_sequence(‘tablename’, ‘ columnname‘);

Ejemplo:

SELECT pg_get_serial_sequence(''demo'', ''autoid'');

La consulta devolverá el nombre de la secuencia de autoid como "Demo_autoid_seq" A continuación, use la siguiente consulta para restablecer el autoid

Sintaxis:

ALTER SEQUENCE sequenceName RESTART WITH value;

Ejemplo:

ALTER SEQUENCE "Demo_autoid_seq" RESTART WITH 1453;


Si creó el product la tabla con una columna de id , entonces la secuencia no se llama simplemente product , sino product (es decir, ${table}_${column}_seq ).

Este es el comando ALTER SEQUENCE que necesita:

ALTER SEQUENCE product_id_seq RESTART WITH 1453

Puede ver las secuencias en su base de datos usando el comando /ds en psql. Si realiza un /d product y observa la restricción predeterminada para su columna, la nextval(...) llamada nextval(...) también especificará el nombre de la secuencia.


si desea restablecer el incremento automático desde la GUI, siga estos pasos.

  1. Ir a su base de datos
  2. Haga clic en Public
  3. en la página Listado de tablas puede ver TABS como ''Tablas'', ''Vistas'', ''Secuencias'' como esa.
  4. Haga clic en Secuencias
  5. cuando haces clic en ''Secuencias'', puedes ver todas las Secuencias de Listado, hacer clic en las que quieras Restablecer
  6. Después de eso, puede ver opciones múltiples como ''Alter'', ''Set Value'', ''Restart'', ''Reset'', etc.
  7. luego haga clic en Restablecer , luego agregue una Nueva fila.

Convertido de comentario por el bien de la conveniencia del visitante

No está claro a partir de este mensaje cuál es la sintaxis correcta. Es:

ALTER SEQUENCE product_id_seq RESTART WITH 1453;