Mysql
 sql >> Database >  >> RDS >> Mysql

Ottieni la stringa di query MySQL completa su Inserisci o Aggiorna

È possibile ottenere la query SQL corrente come stringa con la seguente istruzione:

SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()

Quindi quello che devi fare è creare un TRIGGER che viene eseguito su operazioni di inserimento e/o aggiornamento sulla tabella che dovrebbe (i) ottenere l'istruzione sql corrente e (ii) inseriscilo in un'altra tabella, in questo modo:

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 ;

Dovrai creare due trigger:uno per gli aggiornamenti e uno per gli inserti. Il trigger inserisce la nuova query come stringa nel app_sql_debug_log tabella nella query colonna.