FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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.
|
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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í:
|
#5
|
||||
|
||||
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. |
#6
|
||||
|
||||
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.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda porfavor | fenixjes | Conexión con bases de datos | 14 | 09-08-2007 01:05:45 |
Ayuda PorFavor¡¡¡¡ | JKM | Gráficos | 5 | 21-06-2006 15:58:06 |
Una Ayuda Porfavor!! | JerS | Varios | 2 | 17-08-2005 20:07:06 |
una ayuda porfavor! | Ryu | Internet | 3 | 15-04-2005 23:09:43 |
Ayuda Porfavor | MasterOzzy | Varios | 2 | 25-11-2003 16:14:15 |
|