From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Luis Fernando Curiel Cabrera <lcuriel(at)gmail(dot)com> |
Cc: | Lista de Postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda actualizando secuencias |
Date: | 2010-01-04 15:16:35 |
Message-ID: | 20100104151635.GD3778@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Luis Fernando Curiel Cabrera escribió:
> Hice una copia de la base de datos, de un servidor a otro. Todo se exporto
> correctamente, solo las secuencias se quedaron en 1.
Algo hiciste mal. Las secuencias quedan con su valor correcto cuando
exportas los datos.
> Quiero actualizar cada
> secuencia al valor que deben de tener. Para ello cree esta query, pero me
> marca error:
>
> ALTER SEQUENCE base_serial RESTART SELECT CASE WHEN CAST(MAX(bsid_) as
> bigint) IS NULL THEN 1 ELSE CAST(MAX(bsid_) as bigint)+1 END FROM base;
No puedes usar una expresión (como el SELECT que tienes) en un ALTER
SEQUENCE. Podrías escribir una función plpgsql que use EXECUTE para
lanzar un ALTER SEQUENCE.
Nota que para obtener todas las secuencias podrías usar
select oid::regclass from pg_class where relkind = 's'
--
Alvaro Herrera Vendo parcela en Valdivia:
http://www.portalinmobiliario.com/propiedades/fichas.asp?PropID=749682
"The West won the world not by the superiority of its ideas or values
or religion but rather by its superiority in applying organized violence.
Westerners often forget this fact, non-Westerners never do."
(Samuel P. Huntington)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2010-01-04 15:27:21 | Re: Importante |
Previous Message | Fernando Hevia | 2010-01-04 14:30:29 | RE: Como bloquear IPs en postgresql !!! |