DELIMITER $$
CREATE
TRIGGER trigger_insert_test_table
AFTER INSERT ON test_table
FOR EACH ROW
BEGIN
DECLARE str LONGTEXT DEFAULT ‘’;
SET str = ‘’;
SET str = getDiffJson(‘input_type’,’-’,new.input_type,str);
…
END;
$$
DELIMITER ;
其中函数getDiffJson的对应入参是LONGTEXT类型,如果test_table的input_type字段是enum类型,在向表test_table插入数据触发器执行就会报错而导致插入失败,这种情况在mysql中是允许的并且正常执行
目前暂时的解决方式,先赋值给变量再调用函数:
DECLARE input_type VARCHAR(50) DEFAULT ‘’;
SET input_type = new.input_type;
SET str = getDiffJson(‘input_type’,’-’,input_type,str);