Anda bisa mendapatkan kueri SQL saat ini sebagai string dengan pernyataan berikut:
SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()
Jadi yang harus Anda lakukan adalah membuat TRIGGER
yang berjalan pada operasi penyisipan dan/atau pembaruan pada tabel Anda yang seharusnya (i) dapatkan pernyataan sql saat ini dan (ii) masukkan ke tabel lain, seperti:
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 ;
Anda harus membuat dua pemicu - satu untuk pembaruan dan satu untuk sisipan. Pemicu menyisipkan kueri baru sebagai string di app_sql_debug_log
tabel di query
kolom.