MySQL で作成したストアド プロシージャのログが必要です。これは、MS SQL Server で @@procid として利用できることを知っています。
MySQLで同等のものは何ですか?
タイムスタンプ、connection_id、database() を使用します。
実行中のspの名前を取得するにはどうすればよいですか? 私を呼んだSPはどうですか?
ありがとう、アダム
MySQL で作成したストアド プロシージャのログが必要です。これは、MS SQL Server で @@procid として利用できることを知っています。
MySQLで同等のものは何ですか?
タイムスタンプ、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 |
+------------+----------------+---------------------+