在定义触发器之前,请确保更改定界符。另外,在创建表和触发器时,请确保使用相同的表名和列名(在示例中使用的是
att和
attendance,以及
SID和
StudID)。
实际上,设置分隔符后,在MySQL 5.1.55中对触发器定义进行测试时,触发器定义没有引起任何错误。
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 ;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)