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

MySQLストアドプロシージャでロールバックを検出するにはどうすればよいですか?

    出力パラメータを追加して、出口ハンドラで必要な値に設定できます。

    procを使用した例を次に示します。

    delimiter $$
      create procedure multi_inserts(
      IN var1 int(11),
           .
           .
           .
      IN string1 text,
      OUT p_return_code tinyint unsigned
      )
      BEGIN
    
      DECLARE exit handler for sqlexception
      BEGIN
        -- ERROR
        set p_return_code = 1;
        rollback;
      END;
    
      DECLARE exit handler for sqlwarning
      BEGIN
        -- WARNING
        set p_return_code = 2;
        rollback;
      END;
    
      START TRANSACTION;
      insert into table1(a,b,c,d) values(var1,var2,var3,var4);
      insert into table2(e,f,g) values(var5,var6,string1);
      COMMIT;
    
      -- SUCCESS
      set p_return_code = 0;
    
      END $$
      delimiter ;
    


    1. 移動平均MySQLを計算しますか?

    2. 大きなCLOBを使用してC#からストアドプロシージャを呼び出す際の問題

    3. この1の順序は何ですか?

    4. MySQLのselectクエリで使用するインデックスをヒントにする方法は?