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

My MySQL trigger không hoạt động, cú pháp đơn giản, không phức tạp

Một hàm hoặc trình kích hoạt được lưu trữ không thể sửa đổi một bảng đã được sử dụng (để đọc hoặc ghi) bởi câu lệnh đã gọi hàm hoặc trình kích hoạt.

from: Hạn chế chương trình được lưu trữ .

Nói chung với trình kích hoạt được kích hoạt khi chèn, nếu bạn muốn thay đổi giá trị đang được chèn, bạn thực hiện kích hoạt thuộc loại BEFORE INSERT và thay đổi các giá trị trong NEW

cũng nhận thấy rằng câu lệnh sau đây không phải là điều bạn muốn.

update pos_table set PTS=((NEW.won_games*2)+(NEW.tie_games*1));

Nó cập nhật toàn bộ bảng trong khi tôi nghĩ bạn chỉ đang cố gắng cập nhật một hàng riêng biệt. Dù sao, đây là một phép tính đơn giản nên bạn không thực sự cần phải lưu trữ cột này. Bạn có thể dễ dàng tính toán giá trị tại thời điểm hiển thị và làm cho mã của bạn đơn giản hơn rất nhiều + tránh sự cố với trình kích hoạt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Di chuyển từ Oracle sang MySQL

  2. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 8.04 (Hardy)

  3. Laravel 5.2 - Sử dụng một chuỗi làm Khóa chính tùy chỉnh cho Bảng Eloquent trở thành 0

  4. Cách sử dụng các vai trò đã thay đổi trong MySQL 8.0

  5. MySQL CHÈN VÀO GIÁ TRỊ bảng .. so với CHÈN VÀO ĐẶT bảng