hola Jose como estas Lo que veo yo, por ahi estoy equivocado, en el comando ALTER TABLE dentro del loop estás concatenando la cadena de comandos de ALTER TABLE sin una validación de si es correcto. Miraria un poco las condiciones, el pg_event_trigger_ddl_commands ommand_tag devuelve un identificador del tipo de comando (como ALTER TABLE, CREATE TABLE, etc.), y al hacer un substring puede que estes trayendo un resultado que no es. Donde definis el evento me parece que la cláusula WHEN TAG IN ('ALTER TABLE') no captura bien el filtro de ALTER TABLE public.claims% como si lo captura en la función. Por ahí alguien con mas experiencia te da un panorama mejor.
Saludos De: Jose Mario Trujillo [mailto:miac...@gmail.com] Enviado el: martes, 4 de marzo de 2025 02:15 Para: pgsql-es-ay...@postgresql.org Asunto: Crear un trigger en alter table. CUIDADO: Este correo es externo a TRENES ARGENTINOS, no abras vinculos ni completes formularios de origenes desconocidos. Saludos, Estoy buscando la forma de crear un trigger, lo que busco es que si se agrega un atributo a una tabla, este se agregue tambien a a otra tabla. Este es el codigo que tengo, pero la verdad no he podido ni imprimir las linas de depuracion. CREATE OR REPLACE FUNCTION sync_test_base_claims() RETURNS event_trigger LANGUAGE plpgsql AS $$ DECLARE stmt TEXT; BEGIN RAISE NOTICE 'Trigger activated! Checking for ALTER TABLE commands...'; FOR stmt IN SELECT 'ALTER TABLE public.test_base_claims ' || substring(command_tag, 12) FROM pg_event_trigger_ddl_commands() WHERE command_tag LIKE 'ALTER TABLE public.claims%' LOOP RAISE NOTICE 'Executing: SQL%', stmt; EXECUTE stmt; END LOOP; END; $$; CREATE EVENT TRIGGER sync_test_base_claims_trigger ON ddl_command_end WHEN TAG IN ('ALTER TABLE') EXECUTE FUNCTION sync_test_base_claims(); ALTER table public.claims ENABLE TRIGGER ALL Algun consejo? Jose Mario Trujillo 2B5F B819 533E B033 AD55 D965 A2B5 D2AF 0FDF 371E “El contenido del presente mensaje (y sus anexos) es privado, confidencial y de exclusivo uso para el destinatario referenciado; es de público conocimiento que las comunicaciones por medio de Internet no permiten asegurar ni garantizar la confidencialidad de los mensajes transmitidos, así como tampoco su integridad o su correcta recepción; es por ello que SOFSE no se responsabiliza de posibles perjuicios derivados de la captura, incorporaciones de virus o cualquier otra manipulación efectuada por terceros. Las opiniones expresadas en este mensaje y en los archivos adjuntos son propias del remitente y no representan la opinión o políticas de SOFSE, salvo que se diga expresamente y el remitente se encuentre autorizado para ello”