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

MySQL Trigger không thể cập nhật bảng - nhận được LỖI 1442

Triệu chứng nghĩa là bạn đang chạy UPDATE (cho tất cả các hàng) bên trong INSERT kích hoạt - cả hai đều sửa đổi bảng, điều này không được phép.

Điều đó có nghĩa là, nếu tôi đoán chính xác ý định của trình kích hoạt của bạn, bạn không muốn cập nhật tất cả hàng, nhưng chỉ hàng mới được chèn. Bạn có thể đạt được điều đó dễ dàng với

CREATE TRIGGER sum
BEFORE INSERT
ON news
FOR EACH ROW
SET NEW.sum = (NEW.int_views + NEW.ext_views)/NEW.pageviews

Lưu ý rằng đây là BEFORE INSERT kích hoạt, khi bạn muốn thay đổi hàng trước khi nó được ghi vào bảng.



  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ể thực hiện vòng lặp Cho mỗi hàng bằng MySQL không?

  2. Cách cập nhật nhiều cột trong MySQL

  3. Làm cách nào để kết nối với nhiều cơ sở dữ liệu trong một trang PHP?

  4. Chuyển đổi kiểu dữ liệu MySQL từ varchar thành float

  5. Kết nối PHP không thành công:SQLSTATE [HY000] [2002] Kết nối bị từ chối