Пожалуйста, помогите мне. Я вставляю строку в столбец в таблице MySQL базы данных. но так как я использую предопределенный API для вставки в таблицу, мне нужен Trigger , чтобы помочь разобрать строку в остальных столбцах.
Входящая строка выглядит следующим образом: ((admin)) [[clientId]] >>> Обновить профиль клиента
эта строка будет вставлена в столбец «Сообщение». но в этой таблице есть еще 3 столбца, которые я хочу вставить: user_id, client_id & action. поэтому мне нужно разобрать сообщение на 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;