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.
- Ir a su base de datos
- Haga clic en Public
- en la página Listado de tablas puede ver TABS como ''Tablas'', ''Vistas'', ''Secuencias'' como esa.
- Haga clic en Secuencias
- cuando haces clic en ''Secuencias'', puedes ver todas las Secuencias de Listado, hacer clic en las que quieras Restablecer
- Después de eso, puede ver opciones múltiples como ''Alter'', ''Set Value'', ''Restart'', ''Reset'', etc.
- 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;