Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta MySQL

Estas en el tema de Consulta MySQL en el foro de Mysql en Foros del Web. Que tal, Estoy entrando en el tema MySQL, y tengo un ejercicio que no logro resolver. Busque en internet pero no pude encontrar la solución, ...
  #1 (permalink)  
Antiguo 11/04/2016, 09:53
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Consulta MySQL

Que tal,

Estoy entrando en el tema MySQL, y tengo un ejercicio que no logro resolver.
Busque en internet pero no pude encontrar la solución, debo mantener dos tablas iguales, actualizadas tras DLM en cualquiera de ellas.
Con trigger no pude hacerlo, alguien sabe como implementarlo?
Que puedo utilizar?
Estuve indagando sobre stored procedure y me informe sobre el tema,
baje unos ejemplos como ayuda, pero no pude.

Implemente un sp que recibe los parámetros de la tabla y si es Insert, Update o Delete.
Pero al llamarlo desde un trigger me da error porque claramente al actualizar la otra tabla se dispara el otro trigger, que tambien llama al mismo sp.
Si alguien puede facilitarme alguna solucion, como hacerlo claro, le agradecería.
  #2 (permalink)  
Antiguo 11/04/2016, 10:23
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL

Respondido esta misma mañana a otro miembro:

http://www.forosdelweb.com/f86/trigg...2/#post4787728

Por favor, usa el buscador del foro para buscar temas. Muchas veces se trata de problemas que se han consultado en infinidad de ocasiones.

Y antes que insistas en los triggers, como ya le dije al otro forista: NO, no es factible ni desactivarlos, ni es conveniente usar triggers para esas tareas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/04/2016, 10:30
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Respuesta: Consulta MySQL

Bien gracias, justo eso buscaba.
Ahora, tengo triggerTablaA, y triggerTablaB, ambos llaman al sp pasando los parámetros, no?
Al ejecutarse el triggerTablaA, y ejecutar la accion (DML), se ejecutará el triggerTablaB dandome un error. A lo mejor no estoy buscando bien la solucion, y no debo utilizar triggers.

Cita:
DELIMITER |
CREATE TRIGGER triggerTablaA AFTER INSERT ON tablaA FOR EACH ROW
BEGIN
call storedProcedure('I',new.campo1, new.campo2,....);
END;
| DELIMITER ;
Algo así pensé.
  #4 (permalink)  
Antiguo 11/04/2016, 11:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL

No has entendido nada de lo que leíste...

LO que le respondí a @gagustin es precisamente que NO PUEDES HACER ESO CON TRIGGERs en MySQL. No pierdas tiempo.
Se debe hacer con SP, y la solucion que le propuse es precisamente una alternativa mas o menos viable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 11/04/2016, 11:15
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Respuesta: Consulta MySQL

Ok, no habia entendido bien.
Luego que implemento el sp, como lo disparo?
Esa parte no la tengo muy clara, y como le paso los parámetros del insert, update o delete.
Lo hago desde el código del programa, o existe alguna alternativa desde MySQL?
  #6 (permalink)  
Antiguo 11/04/2016, 11:22
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta MySQL

Aqui me queda una duda, las 2 tablas estan en la misma base de datos? O en bases diferentes? De ser en diferentes creo q mysql tiene algunas alternativas para realizar replicacion.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 11/04/2016, 11:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL

Cita:
Iniciado por usr1000 Ver Mensaje
Ok, no habia entendido bien.
Luego que implemento el sp, como lo disparo?
Esa parte no la tengo muy clara, y como le paso los parámetros del insert, update o delete.
Lo hago desde el código del programa, o existe alguna alternativa desde MySQL?
No se dispara. Se ejecuta.

Por favor, lee la documentación de los manuales de referencia para poder aprender lo necesario de los SP.
SI luego tienes dudas, entonces podemos ver los puntos concretos que no se entiendan.

AL menos algún toturial básico:
http://manuales.guebs.com/mysql-5.0/...rocedures.html

Con PHP: http://php.net/manual/es/mysqli.quic...procedures.php

http://cassianinet.blogspot.com.ar/2...l-parte-1.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 11/04/2016, 11:41
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Respuesta: Consulta MySQL

Cita:
Iniciado por Libras Ver Mensaje
Aqui me queda una duda, las 2 tablas estan en la misma base de datos? O en bases diferentes? De ser en diferentes creo q mysql tiene algunas alternativas para realizar replicacion.....
Son en bases diferentes, que opciones hay?
  #9 (permalink)  
Antiguo 11/04/2016, 11:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL

Si son bases diferentes, pero en el mismo servidor, se puede aplicar la solución que le di a @gagustin.
Si son diferentes servidores no puedes hacerlo con triggers. En ese caso conviene analizar replicación de BBDD.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 11/04/2016, 12:39
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Respuesta: Consulta MySQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si son bases diferentes, pero en el mismo servidor, se puede aplicar la solución que le di a @gagustin.
Si son diferentes servidores no puedes hacerlo con triggers. En ese caso conviene analizar replicación de BBDD.
Si, son en un mismo servidor.
Bien en ese caso implementaré el sp y que se ejecute desde el código fuente.
  #11 (permalink)  
Antiguo 11/04/2016, 13:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta MySQL

Espero que tomes en cuenta lo que le dije a él: Ese SP es sólo un EJEMPLO, y NO debe hacerse un Copy+Paste.
Tienes que crear tu propia lógica y probarlo. Si no funciona, no es culpa del codigo que yo pongo, sino de la adaptación de que de él hagas tu.

¿Eso queda claro?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 11/04/2016, 15:16
 
Fecha de Ingreso: abril-2016
Mensajes: 7
Antigüedad: 8 años
Puntos: 0
Respuesta: Consulta MySQL

Si totalmente, no es lo que buscaba tampoco un copy anda paste sino poder ver claramente un ejemplo para poder implementar lo que necesitaba.
Muchas gracias por sus aportes, saludos!!!

Etiquetas: sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:56.