Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: E N T E R en Octubre 29, 2012, 06:24:28 pm

Título: Trigger MySQL
Publicado por: E N T E R en Octubre 29, 2012, 06:24:28 pm
Hola amigos, tengo este trigger de MySQL tengo 3 tablas que quiero actualizar cuando se cambia los datos de la tabla Clientes, solo me funciona si modifico la cedula y el nombre al mismo tiempo, pero yo lo que quiero es al modificar unos de ellos que surtan efecto en todas las tablas que le indico.

Este es mi codigo

Código: (SQL) [Seleccionar]
DELIMITER $$

USE `control_hotel`$$

DROP TRIGGER /*!50032 IF EXISTS */ `actualizar_clientes`$$

CREATE TRIGGER `actualizar_clientes` AFTER UPDATE ON `clientes`

FOR EACH ROW BEGIN
 
 IF old.nombre <> new.nombre THEN   
 
  UPDATE alquiler SET cedula=new.cedula,nombre=new.nombre WHERE cedula=old.cedula;
  UPDATE piezas SET cedula=new.cedula,cliente=new.nombre WHERE cedula=old.cedula;
  UPDATE ventas SET cedula=new.cedula,nombre=new.nombre WHERE cedula=old.cedula;
 
 END IF;
 
END;
$$

DELIMITER ;
Título: Re:Trigger MySQL
Publicado por: raul338 en Octubre 29, 2012, 11:18:52 pm
Tenés redundancia de datos? me parece que con un par más de tablas te evitabas eso.

De todas formas, como esta formada la clave principal de la tabla que tiene el trigger?
Título: Re:Trigger MySQL
Publicado por: E N T E R en Octubre 30, 2012, 11:38:54 am
Si tengo redundancia de tablas Raul. pero ya no puedo cambiar o sea puedo pero no hay tiempo jejeje, Lo que yo quiero hacer es que cuando haga un UPDATE a la tabla CLIENTES que le afecte a todas esas tablas. De que funciona funciona pero solo si le cambio la cédula y el nombre al mismo tiempo. No funciona si solo le cambio el nombre, o solo si le cambio la cedula. tengo que cambiar la cedula y el nombre solo asi me actualiza.

Mis Tablas
(http://www.mediafire.com/conv/c583f2a27cb37368f81d773d37b861f33233eec082ef8aaf06681b59cea8888c4g.jpg) (http://www.mediafire.com/view/?1ib61md9p37ct6n)