0
私はすべてのストアドプロシージャの監査機能の種類を作成しています。私はストアドプロシージャが持っているパラメータの名前を取得できます(information_schema.parametersテーブルから)。 しかし、私は、パラメータの名前を取得し、それに応じてその呼び出しのためのそれらのパラメータの値を取得し、別のテーブルにログインするすべてのストアドプロシージャのジェネリックコードを作成したいと思います。ストアドプロシージャのパラメータ値を動的に取得します。
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `TestSP`(IN `name` VARCHAR(255), IN `userid` INT(255), IN `isnew` VARCHAR(11))
BEGIN
#DECLARE exit handler for sqlexception ROLLBACK;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
INSERT INTO app_db_log(TYPE,MESSAGE, INFO) VALUES ('ERROR','An error has occurred, operation rollback and the stored procedure was terminated',<INSERT ALL THE PARAMETER VALUES AS SINGLE STRING HERE>);
COMMIT;
SELECT 'An error has occurred, operation rollback and the stored procedure was terminated';
END;
START TRANSACTION;
SIGNAL SQLSTATE '45000';
COMMIT;
END$$
DELIMITER ;
ありがとうございます!
返信いただきありがとうございます。しかし私の要求は少し異なります。たとえば、あなたの例では、 'foo、bar'を取り出すことができましたが、私はこのようなものを見つけるでしょう: 'foo = 123、bar = 456' –
同じ問題です。変数名を使用して値を取得することはできません。 –