在CONCAT函数

时间:2015-11-12 06:42:46

标签: mysql triggers concat

我在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的值帮助我..

table structure

1 个答案:

答案 0 :(得分:0)

  
      
  1. 在触发器主体中,OLD和NEW关键字使您能够访问受触发器影响的行中的列
  2.   
  3. 在INSERT触发器中,只能使用NEW.col_name
  4.   
SET @values = (SELECT GROUP_CONCAT(CONCAT_WS('.',table1.col1,NEW.col1,NEW.col2,NEW.col3) SEPARATOR ',') FROM table2,table3..etc);

您在NEW(引号)中使用了''。删除它。并使用NEW.col1

希望这有帮助。