我需要一個日誌來存儲我在MySQL中編寫的存儲過程。 我知道這在MSSQL Server中可用作@@ procid。在MySQL中獲取當前正在執行的存儲過程名稱?
MySQL中的等價物是什麼?
我打算使用timestamp,connection_id,database()。
我怎樣才能得到正在執行的sp的名稱? 那叫我的sp呢?
感謝, 亞當
我需要一個日誌來存儲我在MySQL中編寫的存儲過程。 我知道這在MSSQL Server中可用作@@ procid。在MySQL中獲取當前正在執行的存儲過程名稱?
MySQL中的等價物是什麼?
我打算使用timestamp,connection_id,database()。
我怎樣才能得到正在執行的sp的名稱? 那叫我的sp呢?
感謝, 亞當
你可以通過一個程序的名字作爲一個IN參數爲調用的過程,並記錄這些程序的信息。
例如 -
DELIMITER $$
CREATE PROCEDURE procedure1(IN proc_name VARCHAR(255))
BEGIN
INSERT INTO proc_log VALUES('procedure1', proc_name, NOW());
END$$
CREATE PROCEDURE procedure2(IN proc_name VARCHAR(255))
BEGIN
INSERT INTO proc_log VALUES('procedure2', proc_name, NOW());
CALL procedure1('procedure2');
END$$
DELIMITER ;
CALL procedure2(NULL);
SELECT * FROM proc_log;
+------------+----------------+---------------------+
| proc_name | call_proc_name | call_ts |
+------------+----------------+---------------------+
| procedure2 | NULL | 2012-07-30 16:17:53 |
| procedure1 | procedure2 | 2012-07-30 16:17:53 |
+------------+----------------+---------------------+
嘗試'CALL procedureName' – diEcho 2012-07-30 13:14:23