我的数据库中有一个名为 SPLIT_STRING 的 mysql 用户定义函数
CREATE FUNCTION `SPLIT_STR`(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
) RETURNS varchar(255) CHARSET latin1
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '')
根据位置拆分值,我正在使用触发器来更新状态,我需要一个临时变量来借助函数SPLIT_STR
as来存储数据
delimiter //
CREATE TRIGGER `after_tbl1_insert` AFTER INSERT ON `tbl1`
FOR EACH ROW BEGIN
DECLARE cab_meter_new VARCHAR(10);
DECLARE cab_cost_new VARCHAR(10);
SET @cab_meter_new = SPLIT_STR(NEW.gps_rs232, '|', 1);
select SPLIT_STR(NEW.gps_rs232, '|', 1) INTO @cab_meter_new,SPLIT_STR(NEW.gps_rs232, '|', 2) INTO @cab_meter_old; //Throws error
----
---
--
END //
delimiter ;
如果我在触发器中调用一个函数,它会抛出一个错误
#1327 - Undeclared variable: SPLIT_STR
这是调用函数设置变量的正确方法吗,我们可以在触发器中调用函数吗,我使用的是Mysql 5.1.66版本