データベースに 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
ます
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 を使用しています。