【发布时间】:2015-11-06 21:08:55
【问题描述】:
delimiter //
CREATE TRIGGER trig AFTER INSERT ON table0 FOR EACH ROW
BEGIN
CREATE TEMPORARY TABLE temp (SELECT t1.col1,t1.Col2,t2.col3,t3.col4,t4.col5 FROM (table1 AS t1 JOIN table2 AS t2 ON t1.col1 = t2.col3... etc) WHERE t1.condition = NEW.condition);
INSERT INTO table5 VALUES (NULL,CURRENT_TIMESTAMP(),0,0,NULL,NULL,NULL,NEW.condition, SELECT GROUP_CONCAT("\"",someColumn - 1,",",50,",",someColumn2,",",30,",",someColumn3,"\"" SEPARATOR ';') FROM temp);
DROP temp;
END;//
delimiter ;
现在是错误
ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'SELECT CONCAT("\"",someColumn - 1,",",50,",",someColumn2,",",30,", ",someColu' 在第 4 行
它在 someColumn3 的 someColu 处被切断
感谢您的宝贵时间。
【问题讨论】:
-
您遇到的错误是什么?
-
请提供所面临的确切错误信息。
-
为什么要在触发器中创建临时表?
-
在我看来,从 INSERT 中省略字段列表通常是不好的风格;并且非常糟糕的形式发布带有此类插入的问题而不提供表格的此类信息(在这种情况下为
tableZ)。 -
您可以尝试在您的插入语句中将 "\"" 更改为 '"' 吗?
标签: mysql select triggers insert