mysql触发器 之后_插入后和更新后的MySQL触发器

我有两个表,其中一个名为att,如下所示

CREATE TABLE att (

SID varchar(50) NOT NULL,

CID varchar(50) NOT NULL,

Date date NOT NULL,

H1 varchar(1) NOT NULL DEFAULT 0,

H2 varchar(1) NOT NULL DEFAULT 0,

H3 varchar(1) NOT NULL DEFAULT 0,

H4 varchar(1) NOT NULL DEFAULT 0,

H5 varchar(1) NOT NULL DEFAULT 0,

H6 varchar(1) NOT NULL DEFAULT 0,

H7 varchar(1) NOT NULL DEFAULT 0,

H8 varchar(1) NOT NULL DEFAULT 0,

H9 varchar(1) NOT NULL DEFAULT 0,

H10 varchar(1) NOT NULL DEFAULT 0,

INDEX (SID, CID)

);

另一个表是以下字段:

SID CID Per

如何为以下内容编写触发器:

如果在att表上的h1-h0的任何字段中发生更新

使用以下值更新每个表中的每列:

((1的总数 – 0的总数)/(1的总数不是0的总数))/ 100

提前致谢

我开发了一个触发器,但它没有工作,它在第11行说错误,你能说出什么问题?

create TRIGGER `att_up` AFTER UPDATE ON `attentance`

FOR EACH ROW BEGIN

DECLARE Zeros INT;

DECLARE Ones INT;

DECLARE total INT;

DECLARE atted FLOAT;

SELECT SUM(8-(h1+h2+h3+h4+h5+h6+h7+h8))

INTO Zeros FROM attentance

WHERE StudID=NEW.StudID;

SELECT SUM(h1+h2+h3+h4+h5+h6+h7+h8)

INTO Ones FROM attentance

WHERE StudID=NEW.StudID;

SELECT SUM(8-(h1+h2+h3+h4+h5+h6+h7+h8))+ SUM(h1+h2+h3+h4+h5+h6+h7+h8)

INTO total FROM attentance

WHERE StudID=NEW.StudID;

set atted=((ZEROS-Ones)/total)/100;

INSERT into per(per) values (atted);

END$$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值