El objetivo de esto es que se pueda hacer select sobre la tabla borradoscopia de tal forma que se pueda recuperar uno u varios registros, dependiendo del criterio de busqueda
----- Mensaje reenviado ----- >De: Alejandro Carrillo <faster...@yahoo.es> >Para: "pgsql-es-ayuda@postgresql.org" <pgsql-es-ayuda@postgresql.org> >CC: "alvhe...@alvh.no-ip.org" <alvhe...@alvh.no-ip.org> >Enviado: martes 15 de noviembre de 2011 10:56 >Asunto: Re: [pgsql-es-ayuda] recorrer old > > >Siguiendo con el tema, tengo un problema ya que al grabar en la tabla >borradoscopia los campos y sus valores, no los graba en el orden de creación >de los campos en la tabla, sino en el orden que le da la gana. Esto es debido >a la función hstore que ejecuta ese trabajo de esa forma. ¿Como podría cambiar >este orden (usando alguna funcion de hstore) de tal forma que aparezcan >ordenados usando el orden de creación en la tabla de la BD? > > >Gracias > > >Anexo function actual > > > >/* esta funcion va asociada a todos los triggers de cada tabla donde se deseé >el borrado fisico con copia*/ >create or replace function public.fn_borradocopia () returns trigger >as >$$ >declare > arrDatos bytea[]; > arrCampos bytea[]; > i integer := 1; > r record; >begin > FOR r IN SELECT (each(hstore(OLD))).* > LOOP > arrCampos[i] := r.key; > arrDatos[i] := r.value; > --RAISE NOTICE 'key:%, value: %', r.key, r.value; > i=i+1; > END LOOP; > insert into borradoscopia values (TG_RELNAME,arrCampos,arrDatos); > return OLD; >end; >$$ >LANGUAGE plpgsql VOLATILE > COST 100; > >--aca van cada trigger para cada tabla >drop TRIGGER trg_borradocopia on clientesborradocopia; >CREATE TRIGGER trg_borradocopia BEFORE DELETE ON clientesborradocopia > FOR EACH ROW EXECUTE PROCEDURE fn_borradocopia () ; > >DELETE from clientesborradocopia where idcliente = 1 > > > >>________________________________ >>De: Alejandro Carrillo <faster...@yahoo.es> >>Para: Alvaro Herrera <alvhe...@alvh.no-ip.org> >>CC: "pgsql-es-ayuda@postgresql.org" <pgsql-es-ayuda@postgresql.org> >>Enviado: martes 8 de noviembre de 2011 14:51 >>Asunto: Re: [pgsql-es-ayuda] recorrer old >> >> >>jajajaj muy chistoso. ¿O es que en postgresql no soporta arrays >>multidimensionales en una funcion? >> >> >> >> >>>________________________________ >>>De: Alvaro Herrera <alvhe...@alvh.no-ip.org> >>>Para: Alejandro Carrillo <faster...@yahoo.es> >>>CC: Ayuda <pgsql-es-ayuda@postgresql.org> >>>Enviado: martes 8 de noviembre de 2011 14:47 >>>Asunto: Re: [pgsql-es-ayuda] recorrer old >>> >>> >>>Excerpts from Alejandro Carrillo's message of mar nov 08 15:47:43 -0300 2011: >>>> porq la tabla solo tiene 2 campos: >>>> >>>> drop TABLE borradoscopia; >>>> >>>> CREATE TABLE borradoscopia >>>> ( >>>> tabla character varying(80) NOT NULL, >>>> registro bytea[][] NOT NULL >>>> ); >>> >>>entonces borrala y hazla de nuevo. >>> >>>-- >>>Álvaro Herrera <alvhe...@alvh.no-ip.org> >>> >>> >>> >> >> > >