0
请帮我一把。我将一个字符串插入到mysql数据库表中的列中。但由于我使用的是预定义的API来插入表格,我需要一个触发器来帮助将字符串解析到其余列中。这个mySQL触发语法是否正确?
字符串在长相未来这样的:((管理员))[[的clientId]] >>>更新客户资料
该字符串将被插入到该列 '消息'。但是我想在该表中插入3个其他列:user_id,client_id &操作。所以我需要将消息解析为3个不同的字符串,以便将它们放入正确的列中。
这是我有,这是正确的?
CREATE TRIGGER 'parse_log4j_message' BEFORE INSERT ON 'util_audit'
FOR EACH ROW BEGIN
select NEW.MESSAGE into @message; //adding String into this variable
select LEFT(message, 1) from table into @firstChar; //get first Char in Message
IF strcmp(@firstChar,'(') = 0 THEN //if first char is '(', then message is correct
SELECT SUBSTRING_INDEX(@message, ')', 2) into @userId; //-> admin
SELECT SUBSTRING_INDEX(@message, ']', 2) into @tempClientId;
SELECT SUBSTRING_INDEX(@message, '[', -1) into @clientId; //-> clientId
SELECT SUBSTRING_INDEX(@message, '>', -1) into @action; //-> the rest of the message
SET NEW.USER_ID = @userId; // set into the columns of the table
SET NEW.CLIENT_ID = @clientId;
SET NEW.ACTION = @action;
END IF;
END;