sql >> データベース >  >> RDS >> Mysql

MySQLストアドプロシージャをどのようにデバッグしますか?

    次のdebug_msg プロシージャを呼び出して、デバッグメッセージをコンソールに出力するだけです。

    DELIMITER $$
    
    DROP PROCEDURE IF EXISTS `debug_msg`$$
    DROP PROCEDURE IF EXISTS `test_procedure`$$
    
    CREATE PROCEDURE debug_msg(enabled INTEGER, msg VARCHAR(255))
    BEGIN
      IF enabled THEN
        select concat('** ', msg) AS '** DEBUG:';
      END IF;
    END $$
    
    CREATE PROCEDURE test_procedure(arg1 INTEGER, arg2 INTEGER)
    BEGIN
      SET @enabled = TRUE;
    
      call debug_msg(@enabled, 'my first debug message');
      call debug_msg(@enabled, (select concat_ws('','arg1:', arg1)));
      call debug_msg(TRUE, 'This message always shows up');
      call debug_msg(FALSE, 'This message will never show up');
    END $$
    
    DELIMITER ;
    

    次に、次のようにテストを実行します。

    CALL test_procedure(1,2)
    

    結果は次のようになります。

    ** DEBUG:
    ** my first debug message
    ** DEBUG:
    ** arg1:1
    ** DEBUG:
    ** This message always shows up
    


    1. LOCALTIMESTAMPの例– MySQL

    2. 12.2 RAC/GIの新機能

    3. Oracleを使用する場合、Fluent NHibernateを使用してバッチフェッチを実装するにはどうすればよいですか?

    4. PostgreSQLに条件付き一意インデックスを追加する方法