El 26/11/2014 a las 19:38, Maxi escribió:
CREATE TRIGGER `cuentaficheros` AFTER INSERT ON `Ficheros2` FOR EACH ROW
UPDATE Datos as dt, Ficheros2 as f2 SET dt.ficherosasociados=(SELECT count(f2.id_Datos) FROM Ficheros2 as f2 WHERE f2.id_Datos=dt.COD_FINCA group by f2.id_Datos) where dt.COD_FINCA=NEW.id_Datos
yo cambiaria esta actualizacion porque tienen una ambiguedad en los alias f2, ademas que no nesecitas hacer referencia a Fichero2 para contar.
UPDATE Datos as dt SET dt.ficherosasociados=(SELECT count(f2.id_Datos) FROM Ficheros2 as f2 WHERE f2.id_Datos=dt.COD_FINCA ) where dt.COD_FINCA=NEW.id_Datos
Hechas las modificaciones ahora a ver si no les falla. Creando filas en ficheros y borrando directamente con el phpMyAdmin funciona bien Como dato curioso el trigger lo hago con phpMyAdmin y lo del idetando no le ha parecido muy bien. Tendre que actualizar la version saludos
Igualmente el group by está de mas porque ya filtraste solo para ese id y no va a agrupar nada, reduces el tiempo de respuesta.
La prueba manual no es lo mismo que está escrito en el trigger.
Lo dicho, a mi no me ha fallado nunca. Pero se que falla porque la gente mete datos en Ficheros2 y luego tengo que pasar una sql a parte para que haga bien el recuento
UPDATE Datos as dt SET dt.ficherosasociados=(SELECT count(f2.id_Datos) FROM Ficheros2 as f2 WHERE f2.id_Datos=dt.COD_FINCA group by f2.id_Datos)
saludos
-- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org