Я хотел бы создать триггер в MySQL, который может фильтровать и записывать операторы SQL (например, все обновления) и записывать оператор SQL в столбец в другой таблице (VARCHAR). Есть ли переменная или функция в MySQL, которая предоставляет текущую строку оператора SQL?
В: Есть ли переменная или функция в MySQL, которая содержит текущую строку оператора SQL?
A: Нет, нет никакой переменной или функции (или какого-либо встроенного механизма), который позволяет телу MySQL TRIGGER извлекать текст SQL инструкции, вызвавшей запуск триггера (исполняемый оператор).
SHOW FULL PROCESSLIST
в теле триггера тоже не получится; SQL, показанный в возврате для этого, отобразит оператор, который получает список процессов. (Если мы хотим использовать SHOW FULL PROCESSLIST
для получения SQL, это должно было бы быть из отдельного сеанса. И нет встроенного механизма для достижения этого изнутри тела TRIGGER.