Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL xử lý lỗi khi thực thi trigger như thế nào?

Khi xảy ra lỗi trong quá trình thực thi trigger, MySQL xử lý theo các quy tắc sau:

  • Nếu trigger BEFORE thất bại, thao tác trên hàng tương ứng sẽ không được thực hiện.
  • Trigger BEFORE được kích hoạt bởi việc cố gắng chèn hoặc sửa đổi hàng, bất kể việc đó sau đó có thành công hay không.
  • Trigger AFTER chỉ được thực thi nếu mọi trigger BEFORE và thao tác trên hàng đều thực thi thành công.
  • Lỗi xảy ra trong trigger BEFORE hoặc AFTER đều dẫn đến thất bại của toàn bộ câu lệnh gọi trigger.
  • Đối với bảng transactional: thất bại của câu lệnh gây rollback tất cả thay đổi do câu lệnh đó thực hiện. Vì thất bại trigger làm câu lệnh thất bại, nên cũng gây rollback. Đối với bảng non-transactional: rollback không thể thực hiện, do đó dù câu lệnh thất bại, các thay đổi trước điểm lỗi vẫn giữ nguyên.