Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/04/2013, 05:56
paco_mandinga
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Transacciones en procedures y en funciones

Ya veo.. Asi que es mejor poner isolation level "REPEATABLE-READ". He mirado y dice que por las "lecturas fantasmas" no hay que preocuparse demasiado, que se pierde mucho rendimiento.


Si en el select que tengo, a la tabla MyISAM a la que se accede se actualiza/inserta/borra solo a través de un trigger, he visto que los triggers bloquean para lecturas consistentes. Pero como puedo hacer para hacer de las demás condiciones del select una transaccion (están en InnoDB), sin tener en cuenta la MyISAM?

Porque si lo he entendido bien, el trigger solo me permitira el bloqueo de la tabla de la ultima condicion, permitiendo la lectura consistente en esa tabla. Pero con las otras tablas del select no se como hacer. Daría problemas si meto dentro de una transacción una condición referida a una tabla que no es InnoDB?, mantendría la transacción para las demás?


Llevo horas buscando y no doy con ello. Aquí dejo el select que pretendo hacer
Muchas gracias!


Código MySQL:
Ver original
  1. SELECT DISTINCT files.fileID FROM count_downloadfiles,filedescriptions,filecategories,files WHERE
  2.  
  3. filecategories.fcatFileID=filedescriptions.fileID AND  
  4.  
  5. count_downloadfiles.dmFileID=filedescriptions.fileID AND
  6.  
  7. filecategories.fcatCategoryID=ANY (SELECT fcatCategoryID FROM filecategories WHERE filecategories.fcatFileID=vFileID) AND
  8.  
  9. files.fileID=filedescriptions.fileID AND
  10.  
  11. files.fType='IMAGE' AND
  12.  
  13. (filedescriptions.fName LIKE vWord OR filedescriptions.fDescription LIKE vWord) ORDER BY dmDownloads DESC;