Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Trigger - SAU KHI CHÈN kích hoạt + UDF sys_exec () sự cố

Ngay cả khi bạn sử dụng trình kích hoạt SAU, hàng vẫn chưa được cam kết. Nhưng sys_exec () không trả về cho đến khi tập lệnh php thoát ra, vì vậy trình kích hoạt SAU KHI không thể hoàn thành, do đó bạn cũng không thể cam kết INSERT.

Đây là do thiết kế. Sau cùng, bạn có thể thực hiện nhiều thao tác hơn trong cùng một giao dịch hoặc bạn có thể khôi phục giao dịch. Đó là vấn đề với việc gọi các quy trình bên ngoài từ trình kích hoạt:các quy trình bên ngoài không thể xem dữ liệu trong phạm vi của giao dịch trong cơ sở dữ liệu.

Bạn không nên thực hiện tác vụ này với một trình kích hoạt. Tốt nhất, bạn nên sử dụng trình kích hoạt để đặt cột "cờ" và sau đó viết một quy trình bên ngoài để tìm kiếm các hàng có đặt cờ và sau đó gọi tập lệnh PHP đó. Bằng cách đó, chỉ những hàng đã được chèn thành công VÀ đã cam kết sẽ được xử lý.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bạn có thể định nghĩa bảng chữ trong SQL không?

  2. Android lấy dữ liệu từ bảng MySql

  3. mysql:chuyển đổi timediff () thành giây

  4. Mệnh đề INNER JOIN ON so với WHERE

  5. Không thể chèn giá trị khóa ngoại vào bảng liên kết