MySQL Déclencher question: déclencher lorsqu'une colonne est modifiée?
Je ne sais pas si c'est possible, mais j'ai une colonne nommée active
dans une table. Chaque fois que la colonne actif est changé, je voudrais réinitialiser la date dans le date
colonne, mais SEULEMENT si le active
colonne est changé.
Si les autres colonnes sont changé, mais pas la active
colonne, puis la date restera la même.
- avant la mise à jour nécessaire de vérifier la vieille valeur à la nouvelle valeur de la colonne actif , voir l'exemple dans java2s.com/Code/Oracle/Trigger/...
- stackoverflow.com/questions/6296313/...
Vous devez vous connecter pour publier un commentaire.
quelque chose comme
SET NEW.date = CURDATE();
?<=>
au lieu de<>
?<=>
signifie "égal à, oùnull
est traité comme une valeur qui peut être comparé", de sorte que vous aurez besoin de changer denot NEW.active <=> OLD.active
Rencontré un problème avec le test SI dans le #2 exemple. Lorsque l'une des valeurs est null, la <> test renvoie la valeur null. Cela conduit à l'essai de ne pas se rencontré et l'action de la gâchette n'obtiendrez pas fonctionner même si une valeur n'est pas égale à la valeur null à tous. Pour corriger cela, je suis venu avec ce test qui utilise <=> (NULL-safe de l'égalité). Espérons que cela aide quelqu'un.
NOT
opérateur au lieu de comparer à zéro, comme dans la réponse suivante: stackoverflow.com/a/24041832/1419007. Sinon, bonne réponse.END
avant la finale$$
?