我在mysql触发器插入时遇到问题:
CREATE TRIGGER `trg1` AFTER INSERT ON `table1` FOR EACH ROW
BEGIN
SET @column = (SELECT GROUP_CONCAT(table_1.col1 SEPARATOR ',') FROM table2,table3..etc;
SET @values = (SELECT GROUP_CONCAT(CONCAT_WS('.','NEW', table_1.col1) SEPARATOR ',') FROM table2,table3..etc);
INSERT INTO log_table(Description)VALUES(CONCAT(@values));
END;
$$
DELIMITER ;
我选择列名并将其与NEW关键字连接,然后将值作为单个字符串插入日志表中。
但是这些值以字符串格式存储为' NEW.col1,NEW.col2 等等。没有NEW keyword.PLs的值帮助我..
答案 0 :(得分:0)
- 在触发器主体中,OLD和NEW关键字使您能够访问受触发器影响的行中的列
- 在INSERT触发器中,只能使用
醇>NEW.col_name
。
SET @values = (SELECT GROUP_CONCAT(CONCAT_WS('.',table1.col1,NEW.col1,NEW.col2,NEW.col3) SEPARATOR ',') FROM table2,table3..etc);
您在NEW
(引号)中使用了''
。删除它。并使用NEW.col1
。
希望这有帮助。