如何创建MySQL INSERT触发器实现两列数值计算?附示例
如何创建触发器对两列进行数值运算?
要在插入数据时通过触发器自动完成列的数值运算并赋值给目标列,可以使用BEFORE INSERT类型的触发器,针对每一行插入数据执行计算逻辑。
正确的示例代码(修正语法问题)
CREATE TRIGGER `POBRANY` BEFORE INSERT ON `TAB1` FOR EACH ROW SET NEW.POBR_SUROW = (NEW.Column_1_ILO + NEW.Column_2_ILO + NEW.Column_3_ILO + NEW.Column_4_ILO + NEW.Column_5_ILO + NEW.Column_6_ILO), NEW.SUMA_GODZIN = (NEW.LICZBA_GODZIN_PRACY * NEW.ILO_OS_B_NA_PRODUKCJI)
代码说明
CREATE TRIGGER \POBRANY`:定义名为POBRANY`的触发器BEFORE INSERT ON \TAB1`:指定触发器在向TAB1`表插入数据前执行FOR EACH ROW:对每一条待插入的行都触发逻辑SET后通过逗号分隔多个赋值操作:NEW.POBR_SUROW:将6个列的数值求和后赋值给该列NEW.SUMA_GODZIN:将LICZBA_GODZIN_PRACY和ILO_OS_B_NA_PRODUKCJI两列相乘后赋值给该列
扩展说明
如果需要在更新数据时也自动执行这些运算,可以将触发器类型改为BEFORE UPDATE,或者同时创建BEFORE INSERT和BEFORE UPDATE的触发器,确保数据变更时目标列值始终准确。
内容的提问来源于stack exchange,提问作者1shot2killz
相关产品推荐
相关产品推荐

