sql >> Database teknologi >  >> RDS >> Mysql

MySQL trigger efter indsættelse og efter opdatering

Sørg for at ændre afgrænsningen, før du definerer udløseren. Sørg også for, at du bruger de samme tabel- og kolonnenavne, når du opretter tabellen og triggeren (du bruger att og attendance og SID og StudID , i dine eksempler).

Som den er, forårsagede triggerdefinitionen ingen fejl, da jeg testede den i MySQL 5.1.55 efter at have indstillet afgrænseren.

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. postgres kopi kommando, binær fil

  2. PHP Hvordan returneres datetime(6) fra Mysql?

  3. Er der nogen array-datatype i MySQL som i PostgreSQL?

  4. Få datoer for en ugedag i et datointerval