sql >> Database >  >> RDS >> Mysql

Krijg volledige MySQL-queryreeks bij invoegen of bijwerken

U kunt de huidige SQL-query als een tekenreeks krijgen met de volgende instructie:

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

Dus wat u moet doen, is een TRIGGER . maken die draait op invoeg- en/of update-bewerkingen op uw tafel die (i) . moeten haal de huidige sql-instructie op en (ii) plaats het in een andere tabel, zoals zo:

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 ;

U moet twee triggers maken - één voor updates en één voor invoegingen. De trigger voegt de nieuwe query in als een tekenreeks in de app_sql_debug_log tabel in de query kolom.



  1. Converteer datum in formaat MM/DD/YYYY naar MySQL-datum

  2. Hoe u het jaar uit een datum haalt in T-SQL

  3. Bool-ondersteuning Oracle SQL

  4. Hoe een inner join op rijnummer in sql-server te doen?