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

MySQL - Kích hoạt để cập nhật Cột trong bảng khác sau khi chèn vào nơi nó thỏa mãn các giá trị khác

Trong một row kích hoạt bạn có quyền truy cập vào hai phiên bản của hàng đang được sửa đổi: OLD chứa hàng như nó (nếu nó tồn tại) và NEW chứa hàng như nó sẽ là ( nếu nó sẽ tồn tại.)

Để làm cho trình kích hoạt của bạn hoạt động như bạn đã mô tả, bạn phải điều kiện WHERE mệnh đề sử dụng các giá trị từ NEW , như vậy:

CREATE TRIGGER update_loyalty_points
  AFTER INSERT ON CWUserOwnsGame
  FOR EACH ROW
    UPDATE CWUsers
      SET loyaltyPoints = loyaltyPoints +
        (SELECT loyaltyPoints
          FROM CWGameList
          WHERE gameConsole = NEW.cName
            AND gameName = NEW.gName)
      WHERE username = NEW.uName;

Tôi đã giả định rằng bạn đã đặt tên cho các cột của mình một cách nhất quán giữa các bảng. Lưu ý rằng các cột chính xác trong NEW có cùng tên với các cột trong CWOwnsGame .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để lưu trữ mã html trong mysql là gì?

  2. Cách thêm cột tự động tăng dần trong bảng hiện có trong MySQL

  3. Làm cách nào để thay đổi mật khẩu của người dùng root trong MySQL?

  4. Khi nào sử dụng datetime hoặc timestamp

  5. Chèn giá trị NOW () vào kiểu dữ liệu datetime sẽ trả về 0000-00-00 00:00:00