MySQL Before Insert 触发器中变量赋值的两种方法及区别
在 MySQL Before Insert 触发器中,有两种常见的为变量赋值的方法:
- 使用 SET 语句:
DECLARE `var` BIT(1);
SET `var` = (SELECT `field` FROM `table` WHERE `col` = NEW.`value`);
该语句使用 SET 将查询结果直接赋值给变量 var,因此即使查询结果为空, var 也会被赋予一个默认值(通常是 NULL)。
- 使用 SELECT INTO 语句:
DECLARE `var` BIT(1);
SELECT `field` INTO `var` FROM `table` WHERE `col` = NEW.`value`;
该语句使用 SELECT INTO 将查询结果赋值给变量 var。然而,如果查询结果为空,var 将保持为空。
区别总结
- SET 语句:将查询结果直接赋值给变量,即使查询结果为空,变量也会被赋予一个默认值。
- SELECT INTO 语句:将查询结果赋值给变量,如果查询结果为空,变量将保持为空。
建议
在实际应用中,如果需要在变量为空的情况下进行处理,建议使用 SET 语句,因为它即使在查询结果为空的情况下也能保证变量被赋值。
原文地址: https://www.cveoy.top/t/topic/m5Mm 著作权归作者所有。请勿转载和采集!