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
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
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
El 26/11/14 a las 23:59, admin-listas escribió:
Como dato curioso el trigger lo hago con phpMyAdmin y lo del idetando no le ha parecido muy bien. Tendre que actualizar la version
No se pueden hacer estas cosas con sueño : http://es.wikipedia.org/wiki/Indentaci%C3%B3n
aunque la RAE parece que no lo reconoce, sustituir por sangrado (parece que matemos a alguien), y mira que últimamente aceptan cualquier cosa.
El día 26 de noviembre de 2014, 19:59, admin-listas admin-listas@satel-sa.com escribió:
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
El identado es cosa mia, todo amontonado no es legible y ayuda a a ver las partes de una consulta.
El 26/11/2014 a las 23:59, admin-listas escribió:
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
Pues más maderaaaaa. No funciona, pero solo a los demás y a veces. Todas las pruebas que puedo hacer salen bien.
Seguro que es una tontería, pero anda que no cuesta encontrarla.
saludos