J'ai une table de jointure avec 2 tables (A et C) avec une relation n:m. La table de jointure (B) contient également certaines informations.
A ----- B ------ C
Dans le tableau A, j'ai une colonne when_modified que je veux toujours tenir à jour si quelque chose change. Cela devrait inclure des modifications sur le tableau B.
J'ai donc un déclencheur de pré-mise à jour sur la table B avec la requête suivante
UPDATE A SET when_modified = NOW() WHERE id = NEW.id;
Le problème est que si j'exécute maintenant une requête de mise à jour (joindre sur B), j'obtiens l'erreur suivante
Impossible de mettre à jour la table 'A' dans une fonction/déclencheur stocké car elle est déjà utilisée par une instruction qui appelle cette fonction/déclencheur stocké.
Update B vv JOIN A v on vv.id = v.id SET vv.block = 1 WHERE v.status = 'finished'
Vous devez réécrire l'instruction UPDATE.
Vous ne pouvez pas mettre à jour un déclencheur, sinon cela pourrait arriver. Boucle infinie
Mais de simples changements auront le même effet
Violon