Ayuda Trigger MySql

yarviT0

Pues quiero hacer que al escribir en una tablaA , se modifique un campo en otra tablaB (que esta relacionada con la tablaA) pero dicho valor nuevo que se le asigna no será siempre el mismo (depende de si el valor de un campo de la tablaA)

un esquema de como es la estructura:

TablaA : id,userid,data.
TablaB: id,campo.

donde userid de la TablaA es id de la TablaB.

tengo todo el tema de BD bastante olvidado de momento lo por lo que recuerdo:

Para hacer el trigger:

CREATE TRIGGER asignar AFTER INSERT OR UPDATE ON tablaA
FOR EACH ROW

BEGIN

//aquí iría el bloque PL/SQL

END;

la instrucción para modificar la tabla

UPDATE tablaB SET Campo= ValorNuevoCampo
WHERE TablaA.userid= TablaB.id

pero no recuerdo como se hacia para que cogiera la id de la tabla que inserta ycomo hacer que dependiendo de si data "Campo" se le asigne un Valor nuevo u otro, si podéis echarme una mano se agradecería.

Soltrac

En Sql Server es FROM Inserted para ver los valores DESPUES del cambio y FROM Deleted para los valores ANTES de éste.

En My Sql será parecido.

dagavi

Búsquda en Google "Trigger MySQL"

http://dev.mysql.com/doc/refman/5.0/es/using-triggers.html

Es como en PostgreSQL: OLD.var NEW.var

Usuarios habituales

  • dagavi
  • Soltrac
  • yarviT0