Juan Jose Muchas gracias

funciono perfecto


El mié, 29 mar 2023 a las 13:56, Juan José Santamaría Flecha (<
juanjo.santama...@gmail.com>) escribió:

>
>
> El mié, 29 mar 2023, 17:43, Jose Mercedes Venegas Acevedo <
> jvenegasp...@gmail.com> escribió:
>
>> Hola comunidad buen dia para todos
>>
>> Espero puedan colaborarme con la siguiente situacion tengo una tabla de
>> auditoria que graba todas las acciones que se realizan sobre mi tablas de
>> lotes que representan terrenos de casas la tabla tiene esta estructura
>>
>> CREATE TABLE IF NOT EXISTS public.cat_lote_audit
>> (
>>     audit_id integer NOT NULL DEFAULT
>> nextval('cat_lote_audit_audit_id_seq'::regclass),
>>     audit_timestamp timestamp with time zone NOT NULL DEFAULT
>> CURRENT_TIMESTAMP,
>>     audit_dbuser name COLLATE pg_catalog."C" NOT NULL DEFAULT
>> CURRENT_USER,
>>     audit_action character(1) COLLATE pg_catalog."default" NOT NULL,
>>     audit_old cat_lote,
>>     audit_new cat_lote,
>>     CONSTRAINT cat_lote_audit_pkey PRIMARY KEY (audit_id),
>>     CONSTRAINT cat_lote_audit_audit_action_check CHECK (audit_action =
>> ANY (ARRAY['I'::bpchar, 'U'::bpchar, 'D'::bpchar]))
>> )
>>
>> como puede verse audit_old y audit_new son del tipo de la tabla a la que
>> le hago la auditoria y contiene todos los campos de la tabla cat_lote
>>
>> cuando quiero mirar el historico de cambios hago una consulta como esta?
>>
>> select row_number() over(),audit_timestamp,audit_dbuser,(audit_old).id as
>> id_antiguo,(audit_old).the_geom as geo_antiguo,
>> (audit_old).nom_cli as nom_cli_antiguo,(audit_old).v_gral as
>> v_gral_antiguo,(audit_new).nom_cli as nomcli_nuevo,(audit_new).v_gral as
>> v_gral_nuevo,(audit_new).the_geom as geo_nuevo from cat_lote_audit where
>> (audit_old).id = '18012200210'
>>
>> Es decir dentro de audit_old o audit_new colocando los paréntesis para
>> encerrar al campo y luego el punto puedo referirme a un campo de la tabla y
>> revisar los valores antiguos y nuevos hasta ahi todo bien.
>>
>> Ahora viene la interrogante resulta que tengo varios millones de
>> registros y efectuar una consulta como la anterior ya tarda un tiempo
>> considerable asi que intente crear un indice asi:
>>
>> CREATE INDEX idx_audit_lote_gid_old
>> ON cat_lote_audit ((audit_old).id);
>>
>
> Creo que faltan paréntesis:
>
> CREATE INDEX idx_audit_lote_gid_old
> ON cat_lote_audit (((audit_old).id));
>
> Un saludo,
>
> Juan José Santamaría Flecha
>
>>
>>

-- 
José Mercedes Venegas Acevedo
cel 955725384

Reply via email to