FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
enviar registros de una tabla a un campo de otra tabla a travez de ciclo IF en MYSQL
hola les agradeseria si me ayudaran con esto
tengo que extraer los campos de una tabla o registros de una tabla esto lo quiero hacer a traves de un ciclo if en mysql cosa que tome los registros y se copien en el campo de otra tabla supongamos que tenenmos tabla: personas y sus campos son: rut,nombre,apellido_paterno,apellido_materno etc... tabla: auditoria y sus campos son: tabla,campo,valor_anterior,valor_actual etc... en la tabla auditoria y dentro de sus campos necesito que se copien los registros ingresados en la tabla personas he tratado con varias formas pero nada me resulta asumo que es con un IF pero nose como situarlo en la consulta quizas ustedes me podrian dar una mano si es que es posible |
#2
|
||||
|
||||
Hola CLUSTERBIT,
La verdad es que no comprendo que tiene que ver el IF en todo esto. No se si estoy interpretando erroneamente tu duda, pero creo que bastaría con ejecutar una cosulta SQL como de este tipo:
Saludos, |
#3
|
|||
|
|||
Cita:
hola Delphius gracias por responder a mi solicitud pero es algo puntual lo que tengo que hacer lo del if solo se me ocurrio mira supongamos que tengo la tabla td_personas con todos sus campos y la tabla ts_auditoria con un campo de nombre audi_campo lo que tengo que hacer es copiar los registros que se ingresen en los campos de la tabla td_personas (que no siempre se ingresaran registros en todos los campo tambien puede ser que se inserten registros en uno o dos campos de esta tabla) y que esos registro se vallan a la tabla ts_auditoria EN EL CAMPO AUDI_CAMPO espero se entienda ahora mi otra consulta es que si pueden ir en una consulta dos INSERT y si se puede me podrias dar un ej porfavor espero no molestar y gracias por tu interes saludos |
#4
|
||||
|
||||
Cita:
Ahora que leo bien, el tema del INSERT no va a funcionar. Me parece más adecuado optar por triggers, más sabiendo que se trata de llevar un proceso de auditoría. Desconozco MySQL, no sabría decir si tiene soporte de triggers. Pero me parece que es la mejor opción. Si tiene soporte (me extrañaría si no los tuviera, sabiendo que hablan tan bien de este motor) quedaría ahora analizar cuales de los 6 posibles triggers son los que se van a emplear para llevar el proceso de auditoria: BEFORE INSERT AFTER INSERT BEFORE UPDATE AFTER UPDATE BEFORE DELETE AFTER DELETE Saludos, |
#5
|
|||
|
|||
Cita:
en cuanto a si soporta triggers mysql si los soporta y el triggers que he tratado de hacer es este: CREATE TRIGGER prueba AFTER INSERT ON td_persona FOR EACH ROW BEGIN INSERT INTO ts_auditoria(audi_ip,audi_fecha,audi_tabla,audi_campo,audi_valor_anterior,audi_valor_actual) VALUES('196.94.87.0',(SELECT DATE_FORMAT(now(),'%Y/%m/%d')),'Persona',1,1,1); END; entonces necesito extraer cada registro que se haga en la tabla td_persona y mostrarlos en (OJO) el CAMPO AUDI_CAMPO de la tabla ts_auditoria entonces nose como se haria si con un IF o si se puede agregar otro insert en la misma consulta espero se entienda saludos y espero no molestar saludos |
#6
|
||||
|
||||
Ummm, no veo que funcione adecuadamente ese Trigger.
Por empezar supuse que te darías cuenta que necesitas de una tabla más. Te explico: Según tu explicación, tu tabla Auditoria tiene los siguientes campos: tabla campo valor anterior valor actual etc... Esto me da la pauta de que por cada campo de interés por auditar se debe insertar un registro en dicha tabla. Ahora bien, la pregunta aquí es ¿Y que sucede si alguien hace modificaciones a más de un campo de alguna tabla a la que se le lleve el proceso de auditoria? Mejor dicho, la pregunta sería ¿De qué manera identificamos cuales son los cambios que pertenecen a un mismo registro, a una misma acción? Es necesario contar con un esquema maestro-detalle para conseguir esto. Por ejemplo: una tabla maestra llamada Auditoria que contenga los campos: IDAuditoria -> PK Fecha/Hora Nombre_tabla IDregistro etc Y una tabla Auditoria_detalle, cuyos campos serían en este caso: IDAuditoria_detalle -> PK AuditoriaID -> FK campo ValorActual valorAnterior ¿Porqué este esquema? Porque de esta manera conseguimos identificar todos los cambios realizados para un mismo registro de alguna tabla. De este modo, ante el disparo de algún trigger, realizamos un INSERT dentro de éste en las tabla de detalles, por cada campo que necesitamos auditar. Tal vez este hilo te sea de ayuda para comprender mejor el panorama. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? | patriram | MySQL | 4 | 02-11-2007 16:00:24 |
Actualizar un campo de una tabla con datos que se encuentran en otra tabla | Morphine | SQL | 4 | 15-12-2006 22:47:42 |
pasar registros de una tabla a otra... | CarlosHernandez | Firebird e Interbase | 2 | 17-01-2006 15:58:23 |
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! | EfrainSanmiguel | Conexión con bases de datos | 3 | 21-10-2004 01:12:43 |
Registros de una tabla que no se encuentren en otra | Ignacio | SQL | 6 | 31-03-2004 16:30:54 |
|