Table1
データベース トランザクションを作成し、 DBにレコードを挿入していますH2
。しかし、まだコミットは行われていません。このプロセスの間に、半分のレコードを実行した後、1 つのcreate
ステートメントを実行します (作成された Table2)。
Table2
が作成され、それに伴い、以前のINSERT
ステートメントも DB にコミットされます。
この後、 にさらにレコードを挿入しています。挿入に失敗した場合でも、 のステートメントのTable1
前に挿入された Table1 のレコードが表示されます。create
Table2
このため、トランザクションが失敗した後でも、DB にいくつかのレコードが表示されます。DBにゼロのレコードがあると思っていました。
なぜこうなった?