MySQl触发器(统计某省设备数异常)

问题描述

       做一个mysql触发器,实现device_info表中插入一条记录,在province_statistics表中,将对应province的设备数加一。

       触发定义无问题,但是device_info表中插入一条记录后,province_statistics表中对应的数据没有加一。

device_info表

province_statistics表(部分)

触发器

DELIMITER $$
CREATE TRIGGER province_statistics
AFTER INSERT ON device_info
FOR EACH ROW
BEGIN
    
    DECLARE count INT;

    SELECT COUNT(*) INTO count FROM province_statistics WHERE province like concat('%',NEW.province,'%');

    IF count > 0 THEN
		
        UPDATE province_statistics SET total = total + 1 WHERE province like concat('%',NEW.province,'%');
				
				
    END IF;
		
END$$

DELIMITER ;

问题原因

       province_statistics表中的total字段初始值为 NULL,而不是0,在 SQL 中,将 NULL 与数字相加通常会导致结果为 NULL。这是因为 NULL 代表未知值,而任何与未知值的运算都会产生未知的结果,因此结果也是 NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值