From: | Lazaro Rubén García Martinez <lgarciam(at)vnz(dot)uci(dot)cu> |
---|---|
To: | Marcelo Robin <marcelorobin(at)gmail(dot)com>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: MODIFICAR MASIVAMENTE UN CAMPO |
Date: | 2011-05-02 13:54:40 |
Message-ID: | 294D3D02D5E18D42827B2ECFEADEB68808FFB31F8A@mx-interno.vnz.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Mira eso que deseas hacer, lo puedes hacer mediante un procedimiento almacenado, acá te dejo un ejemplo sencillo donde creo una tabla con una clave primaria de tipo numeric, y después le asigno un id a partir de una secuencia como deseas, espero que te sea de utilidad.
--Creación de la tabla
CREATE TABLE public.a (
id numeric(18,2),
fecha date,
primary key (id)
) ;
--Creación de la secuencia
CREATE SEQUENCE public.seq_id
START 100
INCREMENT 1
MINVALUE 100
MAXVALUE 9223372036854775807
CACHE 1;
--Procedimiento almacenado
CREATE FUNCTION public."Function02"()
RETURNS integer AS
$$
DECLARE
estado public.a.id%TYPE;
begin
FOR estado IN SELECT public.a.id from public.a
Loop
UPDATE public.a SET id = nextval('seq_id') WHERE public.a.id = estado;
END Loop;
RETURN 1;
end
$$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
Saludos.
________________________________________
De: pgsql-es-ayuda-owner(at)postgresql(dot)org [pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Marcelo Robin [marcelorobin(at)gmail(dot)com]
Enviado el: viernes, 29 de abril de 2011 9:42
Para: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: [pgsql-es-ayuda] MODIFICAR MASIVAMENTE UN CAMPO
Hola a todos. Tengo un campo en una tabla que en este momento almacena datos de tipo NUMERIC.
Debería modificarlos masivamente a todos los registros que ya tengo almacenados. Esta modificación consiste en colocar una serie arrancando desde el nro 100 en adelante pero ordenados segun un criterio...
Es decir en el primer registro de la tabla debería ir el 100, en el segundo el 101 y así sucesivamente...
Hasta el momento lo hacía externamente haciendo una rutina en vb.net<http://vb.net> y los modificaba cambiando los parametros.
Quería saber si pudiera crear una VISTA dentro de la tabla en cuestión para que al ejecutarla, automáticamente haga estos cambios... y cómo tendría que arrancar a diseñar esta VISTA... cómo sería el código...
Desde ya muchas gracias
Marcelo
From | Date | Subject | |
---|---|---|---|
Next Message | Lazaro Rubén García Martinez | 2011-05-02 14:17:00 | RE: Cambio de Equipo |
Previous Message | Miguel Angel Hernandez Moreno | 2011-05-02 13:37:20 | Re: Cambio de Equipo |