Page 1 of 1
Trigger que actualice la misma tabla
Posted:
Sun Mar 07, 2021 5:20 pm
by santidedos
Buenas tardes compañeros,
Estoy buscando como actualizar desde un trigger, un campo de la misma tabla donde se encuentra el trigger. El trigger está en una tabla llamada usuarios y la idea es que, cuando se realiza una actualización en esa tabla, que desde el trigger se complete el ultimo campo de esa tabla con la función CONNECTION_ID(), que guarda el numero de id de la conexión con MYSQL. Gracias de antemano!
Re: Trigger que actualice la misma tabla
Posted:
Sun Mar 07, 2021 6:56 pm
by artu01
El trigger se dispara o ejecuta para actualizar a la tabla "B" después que a la tabla "A" se le hace un INSERT o UPDATE o DELETE, no tiene sentido hacerlo a la misma tabla
Re: Trigger que actualice la misma tabla
Posted:
Sun Mar 07, 2021 8:38 pm
by santidedos
Tiene sentido porque me resolvería. Según leí hay maneras de hacerlo, pero no conozco la sintaxis.
Re: Trigger que actualice la misma tabla
Posted:
Sun Mar 07, 2021 10:53 pm
by cmsoft
Podria ser algo asi:
- Code: Select all Expand view
DELIMITER $$
USE `mibasededatos`$$
DROP TRIGGER /*!50032 IF EXISTS */ `ActualizarId`$$
CREATE
TRIGGER `ActualizarId` AFTER INSERT ON `usuarios`
FOR EACH ROW BEGIN
UPDATE usuarios SET idconection = CONNECTION_ID()
WHERE usuario = NEW.usuario;
END;
$$
DELIMITER ;
Y deberias crear una igual para el UPDATE
Re: Trigger que actualice la misma tabla
Posted:
Sun Mar 07, 2021 11:45 pm
by santidedos
Muchas graciass.. probé como me dijiste pero no me funciona. No me tira error de sintaxis, pero no me actualiza el campo.
Re: Trigger que actualice la misma tabla
Posted:
Mon Mar 08, 2021 12:18 am
by artu01
cmsoft wrote:Podria ser algo asi:
- Code: Select all Expand view
DELIMITER $$
USE `mibasededatos`$$
DROP TRIGGER /*!50032 IF EXISTS */ `ActualizarId`$$
CREATE
TRIGGER `ActualizarId` AFTER INSERT ON `usuarios`
FOR EACH ROW BEGIN
UPDATE usuarios SET idconection = CONNECTION_ID()
WHERE usuario = NEW.usuario;
END;
$$
DELIMITER ;
Y deberias crear una igual para el UPDATE
Creo k te falta el trigger para el update
- Code: Select all Expand view
CREATE
TRIGGER `ModificaUsu` AFTER UPDATE ON `usuarios`
FOR EACH ROW BEGIN
UPDATE usuarios SET idconection = CONNECTION_ID()
WHERE usuario = OLD.usuario;
END;
Re: Trigger que actualice la misma tabla
Posted:
Mon Mar 08, 2021 2:16 am
by Marcelo Via Giglio
Holas,
el tema es que defines un trigger para que se dispare cuando se modifca una tabla, pero el trigger en si vuelve a modificar la misma tabla, entonces se vuelve una ejecuci'on infinita, creo que hay algo explisito que debes hacer para este caso, busca la documentacion
saludos
Marcelo