Vous pouvez obtenir la requête SQL actuelle sous forme de chaîne avec l'instruction suivante :
SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()
Donc, ce que vous avez à faire est de créer un TRIGGER
qui s'exécute sur les opérations d'insertion et/ou de mise à jour sur votre table qui doivent (i) obtenir l'instruction sql actuelle et (ii) insérez-le dans un autre tableau, comme ceci :
DELIMITER |
CREATE TRIGGER log_queries_insert BEFORE INSERT ON `your_table`
FOR EACH ROW
BEGIN
DECLARE original_query VARCHAR(1024);
SET original_query = (SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID());
INSERT INTO `app_sql_debug_log`(`query`) VALUES (original_query);
END;
|
DELIMITER ;
Vous devrez créer deux déclencheurs - un pour les mises à jour et un pour les insertions. Le déclencheur insère la nouvelle requête sous forme de chaîne dans le app_sql_debug_log
table dans la query
colonne.