Bonjour,

Je n'arrive pas à faire fonctionner la requête de création de mon trigger, je viens donc chercher votre expérience.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 CREATE TRIGGER update_table_X BEFORE UPDATE ON table_X 
FOR EACH ROW 
BEGIN 
IF( (
SELECT COUNT( * )
FROM logs
WHERE table_name = 'table_X'
AND key_values = OLD.rowid
AND `type` = 'insert' ) =0
)
THEN
INSERT INTO logs( id_log, table_name, key_names, key_values, `type` )
VALUES ( 0, 'table_X', 'rowid', OLD.rowid , 'update' ) ;
 
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO logs ( id_log, table_name, key_names, key_values, `t' at line 3

Petite explication: j'ai une table de log qui me permet de faire un suivi des modifications dans la base. Lors d'un update, je veux créer un log de type Update dans ma table seulement si cette table ne contient pas déjà un log de type insert (un autre trigger se charge d'avoir créé cette ligne).


Merci d'avance de votre aide.

Bonne journée

Maximilien