0

ここに2つのテーブルemployee(empID int、empName varchar、age int)とsalary(salID、empID、...)があります。

  1. insert into employee select ... where not exists (select 1 from employee where empID = :employeeID)

  2. insert into salary ....

  3. ...

上記のロジックと同じ従業員で同時に実行されている 2 つのジョブがあります。

  • job1 が失敗し、ロールバックされました。
  • job2 は、job1 がロールバックされる前に開始され、job1 がロールバックされた後にコミットされました。

私の質問は次のとおりです。

  1. job2 が正常に完了した場合、employee テーブルにはいくつのレコードが挿入されますか? 1または0?より正確には、job2 のステップ 1 で、job1 によって挿入された従業員レコードを確認できますか?
  2. 0 の場合、従業員が job2 によって挿入されていること、または job1 のロールバックによって削除されていないことを確認するにはどうすればよいですか?
4

1 に答える 1