sql >> Databáze >  >> RDS >> Mysql

Spouštěč MySQL po vložení a po aktualizaci

Před definováním spouštěče se ujistěte, že jste změnili oddělovač. Také se ujistěte, že při vytváření tabulky a spouštěče používáte stejné názvy tabulek a sloupců (používáte att a attendance a SID a StudID , ve vašich příkladech).

Jak to je, definice spouštěče nezpůsobila žádnou chybu, když jsem ji testoval v MySQL 5.1.55 po nastavení oddělovače.

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. Jak provedu hromadné vložení do mySQL pomocí node.js

  2. Úložný modul Mysql pro tabulku protokolů

  3. Proč date() nepřevádí YYMMDDHHMM do formátu data přijatelného pro MySQL správně?

  4. Přejmenování více sloupců v jednom příkazu pomocí PostgreSQL