在 MySQL Before Insert 触发器中,有两种常见的为变量赋值的方法:

  1. 使用 SET 语句:
DECLARE `var` BIT(1);
SET `var` = (SELECT `field` FROM `table` WHERE `col` = NEW.`value`);

该语句使用 SET 将查询结果直接赋值给变量 var,因此即使查询结果为空, var 也会被赋予一个默认值(通常是 NULL)。

  1. 使用 SELECT INTO 语句:
DECLARE `var` BIT(1);
SELECT `field` INTO `var` FROM `table` WHERE `col` = NEW.`value`;

该语句使用 SELECT INTO 将查询结果赋值给变量 var。然而,如果查询结果为空,var 将保持为空。

区别总结

  • SET 语句:将查询结果直接赋值给变量,即使查询结果为空,变量也会被赋予一个默认值。
  • SELECT INTO 语句:将查询结果赋值给变量,如果查询结果为空,变量将保持为空。

建议

在实际应用中,如果需要在变量为空的情况下进行处理,建议使用 SET 语句,因为它即使在查询结果为空的情况下也能保证变量被赋值。

MySQL Before Insert 触发器中变量赋值的两种方法及区别

原文地址: https://www.cveoy.top/t/topic/m5Mm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录