mysql ,两列的运算结果作为新列写入数据表
现有一个数据表,有a,b两列,a和b不一定同时写入,要在新数据插入时对两列数据进行加法运算,并将运算结果写进数据库表
create table cal(
a VARCHAR(10),
b VARCHAR(10),
c varchar(10)
)
DROP TRIGGER IF EXISTS t_cal_data;
CREATE TRIGGER t_cal_data
before insert
ON cal
FOR EACH ROW
set new.c=new.a-new.b
我就写了个触发器,但是只有a,b同时插入才会计算;怎么才能做到不同时写入也能计算呢?
还有一个问题,如果我直接修改表把a和b补齐,就不属于insert,不会触发触发器,也就不会计算
回答
CREATE TRIGGER call_tr BEFORE INSERT ON `call` FOR EACH ROW
set new.c=new.a-new.b
INSERT INTO `call` VALUES ('1', '', '');
INSERT INTO `call` VALUES ('', '1', '');
INSERT INTO `call` VALUES ('1', '1', '');
a,b分开插入,都触发了呀!!!
修改的话应该需要再创建一个触发器 before update!