8

トランザクション中に例外が発生したときにロールバックするトランザクションを MySql で作成しようとしています。ストアド プロシージャで以下を使用すると、同様です。

DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK; 

ストアド プロシージャを記述せずにこれを行うことはできますか? たとえば、次のスニペットは、2 番目の挿入が失敗するため、最初の挿入をロールバックする必要があります。

START TRANSACTION;
INSERT INTO mytable VALUE 'foo1',2,'foo3','foo4'
INSERT INTO mytable VALUE 'foo1','foo2','foo3','foo4'
COMMIT
4

1 に答える 1

5

私が正しく理解している場合は、たとえば、挿入が失敗した場合にロールバックする単一のトランザクションで、挿入を含む SQL スクリプトを実行する必要があります。は正しい?

私はこれについて100%ではありませんが、これをストアドプロシージャとして、またはプログラムでJavaなどで行う必要があると確信しています。

于 2012-10-09T14:27:33.317 に答える