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

Kích hoạt MySQL sau khi chèn và sau khi cập nhật

Đảm bảo rằng bạn thay đổi dấu phân cách trước khi xác định trình kích hoạt. Đồng thời đảm bảo rằng bạn đang sử dụng cùng một tên bảng và cột khi tạo bảng và trình kích hoạt (bạn đang sử dụng attattendanceSIDStudID , trong các ví dụ của bạn).

Như vậy, định nghĩa trình kích hoạt không gây ra lỗi khi tôi kiểm tra nó trong MySQL 5.1.55 sau khi đặt dấu phân cách.

delimiter $$
CREATE TRIGGER `att_up` 
  AFTER UPDATE ON `attendance`
FOR EACH ROW 
BEGIN
  DECLARE Zeros INT;
  DECLARE Ones INT;
  DECLARE total INT;
  DECLARE attend FLOAT;
  SELECT SUM(8-(h1+h2+h3+h4+h5+h6+h7+h8)), 
         SUM(h1+h2+h3+h4+h5+h6+h7+h8),
         SUM(8-(h1+h2+h3+h4+h5+h6+h7+h8)) + SUM(h1+h2+h3+h4+h5+h6+h7+h8)
    INTO Zeros, Ones, Total FROM attendance 
    WHERE SID=NEW.SID;
  SET attend=((Zeros-Ones)/total)/100;
  INSERT INTO per (SID, CID, per) values (NEW.SID, NEW.CID, attend)
    ON DUPLICATE KEY UPDATE per=attend;
END$$
delimiter ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng chỉ mục tìm kiếm Solr làm cơ sở dữ liệu - điều này có sai không?

  2. MySql chọn trên các trường chứa giá trị rỗng

  3. Hợp nhất hai bảng với số cột khác nhau

  4. Giải thích Wordnet SQL

  5. MySQL:Chèn bản ghi nếu không tồn tại trong bảng