Avatar
0
toilahtc Beginner
toilahtc Beginner
transaction: có thể thực thi câu lệnh sql trong transaction nếu có exception xảy ra không
Giả sử: trong 1 transaction có 2 câu lệnh insert A và B

  • insert A : ok
  • insert B:  exception

Liệu có cách nào để vẫn thực thi câu lệnh insert A không ạ?

  • Answer
transaction
Remain: 5
2 Answers
Avatar
monkey Beginner
monkey Beginner
Mục tiêu của transaction là nếu A hoặc B failed thì cả 2 sẽ bị rollback, nên có vẻ em đang làm hơi ma giáo nhỉ. Tuy nhiên em có thể code kiểu này:

transaction.begin()
try {
  insert A,
  insert B
} finally {
   transaction.commit();
}

Thì nó sẽ commit ngay cả khi B bị lỗi và A sẽ được giữ trạng thái là insert em ạ.

  • 0
  • Reply
Avatar
EndlessLove Beginner
EndlessLove Beginner
có 1 cách nữa là tạo 1 transaction khác nằm trong trasaction đó với độ ưu tiên cao hơn, cụ thể là propagation = propagation.requires_new
  • 0
  • Reply