आप वर्तमान SQL क्वेरी को निम्न कथन के साथ स्ट्रिंग के रूप में प्राप्त कर सकते हैं:
SELECT info FROM INFORMATION_SCHEMA.PROCESSLIST WHERE id = CONNECTION_ID()
तो आपको क्या करना है एक TRIGGER
. बनाना है जो आपकी टेबल पर इन्सर्ट और/या अपडेट ऑपरेशंस पर चलता है जो (i) . होना चाहिए वर्तमान sql स्टेटमेंट प्राप्त करें और (ii) इसे किसी अन्य तालिका में डालें, जैसे:
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 ;
आपको दो ट्रिगर बनाने होंगे - एक अपडेट के लिए और एक इंसर्ट के लिए। ट्रिगर नई क्वेरी को app_sql_debug_log
में एक स्ट्रिंग के रूप में सम्मिलित करता है query
. में तालिका कॉलम।