Problém je v tom, že rozsah spouštěčů MySQL je na úrovni řádků, nikoli na úrovni příkazů. V rámci pravidla tak máte přístup k hodnotám OLD a NEW pro každý sloupec v daném řádku, ale nemáte přístup k příkazu, který způsobil spuštění pravidla.
Pokud jde o information_schema.processlist, v tomto pohledu není ve skutečnosti nic „uloženo“ (přetrváváno). Je to pouze rozhraní SQL k seznamu procesů a příkaz, který způsobil spuštění spouštěče, není v rámci spouštěče přístupný.
Řekli jste, že nechcete povolit obecný protokol dotazů a tento přístup není dokonalý z několika důvodů (včetně granularity event_Time na 1 sekundu), ale zde je příklad toho, jak byste mohli přepsat spouštěč pomocí tabulka general_log:
SET GLOBAL GENERAL_LOG='ON';
SET GLOBAL LOG_OUTPUT='TABLE';
DELIMITER ||
CREATE TRIGGER DEBUG_DATE BEFORE UPDATE ON db.tbl FOR EACH ROW
BEGIN
DECLARE Q MEDIUMTEXT;
SELECT argument INTO Q
FROM mysql.general_log
where thread_id = connection_id()
order by event_time desc
limit 1;
INSERT INTO db.tbl_log (INFO)
VALUES (Q);
END ||
DELIMITER ;