ayuda porfavor!!
hola bueno me presento soy nuevo en el foro y tengo una consulta que me tiene aflijido
tengo que hacer un trigger que mande los datos de una tabla que se ingresan o se modifiquen de cada campo en otro campo de otra tabla solo espero un ejemplo lo que sea espero me ayuden los felisito por el foro |
Bienvenido !!!
Ante todo, tómate un tiempo para leer la Guia de Estilo. En ella verás que "Ayuda Por Favor" no nos cuenta nada de tu problema y no ayuda en las búsquedas. También deberías especificar para qué motor de base de datos necesitas el trigger. Si es Firebird, necesitarás dos triggers : uno para insertar y otro para la modificación.
|
hola duilioisola bueno disculpas no lo sabia jejeje...
bueno gracias por responder a mi demanda todo esto lo tengo que hacer en mysql y esto es lo que hice CREATE TRIGGER prueba AFTER INSERT ON td_persona FOR EACH ROW BEGIN INSERT INTO ts_auditoria(pers_id,perf_id,audi_ip,audi_fecha,audi_tabla,audi_campo,audi_valor_anterior,audi_valor _actual) VALUES((SELECT MAX(pers_id) AS pers_id FROM td_persona),(SELECT MAX(inst_id) AS inst_id FROM td_persona),1,(SELECT (DATE_FORMAT(CURDATE(),'%d/%m/%y')))',1,1,1,1); END; ahora mi problema es que los campos que tienen un 1 no se como podria extraer los registros de la tabla td_persona y enviarlos a esos campos que me faltan de la tabla ts_auditoria saludos |
No conozco MySQL, pero se que es parecido.
Dentro de un Trigger puedes ver el valor de los campos de la tabla precediendolos con "NEW." . Supongamos que TD_PERSONA tiene los campos pres_id, nombre,direccion,telefono,... El trigger quedaría más o menos así:
|
Esto está MUY mal:
Debes reemplazarlo por NEW.ID_PERSONA. El problema es que el máximo de ID_PERSONA no necesariamente será el ID_PERSONA del registro que estás insertando. Lo mismo con INST_ID. Puede que estés insertando una "Instancia" y que otro haya insertado una posterior y estarías mezclando información. |
Los campos de la tabla que ves en los trigger precedidos por NEW. o por OLD. son los campos del registro actual..
(Por lo menos en Firebird) El prefijo NEW, lo verás en los triggers de Insert y Update. El prefijo OLD, lo verás en los triggers de Update y Delete. Un ejemplo es poder saber si ha cambiado algo.
|
jejeje... perdon si tenia un despelote es que recien estoy aprendiendo esto de consultas de base de datos
hare la prueba y te cuento como me fue muchisimas gracias :) duilioisola |
La franja horaria es GMT +2. Ahora son las 07:08:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi