1
あるストアドプロシージャが別のストアドプロシージャから特に呼び出されているかどうかを知る方法はありますか?あるストアドプロシージャが別のストアドプロシージャから呼び出されているかどうかを確認する
CREATE PROCEDURE `sp_1`(
IN invar_one VARCHAR(32),
OUT outvar_one VARCHAR(32)
)
BEGIN
/*I want some condition like this:*/
IF (/*Is called from sp_2 */) THEN
SET outvar_one = "OK";
ELSE
SET outvar_one = "NOT OK";
END IF;
END;
CREATE PROCEDURE `sp_2`(
IN invar_two VARCHAR(32),
OUT outvar_two VARCHAR(32)
)
BEGIN
CALL sp_1(invar_two,@outvar_two);
END;
ルーチンテーブルを使用して、以下の答えを確認してください。プロシージャの定義にアクセスし、sp_1が使用されているかどうかを確認しますが、sp_1が呼び出されるかどうかは保証されません。 –
私はあなたの目的に合った答えを試みましたが、残念ながらこれは望みどおりには機能しません。 sp_1がsp_2から呼び出されたかどうかを確認する必要があります – MTK
MySQLのinformation_schemaデータベースにオブジェクトの依存性のデータがありませんでした。以下の条件をROUTINE_DEFINITION LIKE '%CALL sp_1%'に変更する必要があります。より良い方法を見つけるまで、SPが呼び出されるようにします。 –