Можете да получите текущата SQL заявка като низ със следния израз:
SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()
Така че това, което трябва да направите, е да създадете TRIGGER
който се изпълнява при операции за вмъкване и/или актуализиране на вашата таблица, което трябва да (i) вземете текущия оператор на sql и (ii) вмъкнете го в друга таблица, така:
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 ;
Ще трябва да създадете два тригера - един за актуализации и един за вмъквания. Тригерът вмъква новата заявка като низ в app_sql_debug_log
таблица в query
колона.