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

Trình kích hoạt MySQL và SUM ()

Đây là những gì được gọi là vấn đề "Bảng đột biến". Điều tóm lại là trình kích hoạt hàng không được phép truy cập vào các hàng khác trong cùng một bảng vì không có gì đảm bảo rằng các hàng sẽ được cập nhật theo một thứ tự cụ thể, trong số những thứ khác.

Trước hết, bạn thực sự không nên cố gắng lưu trữ total_income khi bạn có thể dễ dàng tính toán nó khi cần thiết. Điều đó nói rằng, tôi nghĩ rằng bạn có thể làm những gì bạn muốn bằng cách làm một điều gì đó như

CREATE TRIGGER family_income_update
  AFTER UPDATE ON family
  FOR EACH ROW 
BEGIN
  UPDATE student
    SET total_income = total_income + (NEW.income - OLD.income)
    WHERE student.id_student = NEW.id_student;
END;

Ý tưởng là sửa đổi student.total_income so với giá trị trước đó của nó, vì bạn chỉ có thể tham chiếu family.income so với giá trị trước đó của nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn vào bảng mysql và ghi đè lên bất kỳ dữ liệu hiện tại nào

  2. Khi nào tôi nên sử dụng giao thức nén MySQL?

  3. MySQL | Bạn không thể chỉ định bảng mục tiêu 'a' để cập nhật trong mệnh đề FROM

  4. Wordpress Lỗi nghiêm trọng:Lỗi chưa tìm thấy:Gọi đến hàm không xác định mysql_connect () trong /wp-includes/wp-db.php:1570

  5. Bản ghi SQL Count trong vòng một tháng sử dụng dấu thời gian unix