ERROR 1064(42000) - INSERT ... SELECT查询中的MySQL错误

时间:2014-08-14 13:50:22

标签: mysql sql

作为我正在编写的MySQL触发器的一部分,我有一个返回的INSERT ... SELECT查询:

  

第7行的错误1064(42000):您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第33行'pp2 (curr_code, pricing_id, pid, title, startdate, enddate, priority, enabled) S'附近使用正确的语法

INSERT INTO product_pricing pp2 (curr_code, pricing_id, pid, title, startdate, enddate, priority, enabled) 
SELECT cc, `pp1`.`pricing_id`, `pp1`.`pid`, `pp1`.`title`, `pp1`.`startdate`, `pp1`.`enddate`, `pp1`.`priority`, `pp1`.`enabled` 
FROM product_pricing pp1 
WHERE pp1.pp_id = NEW.pp_id 
ON DUPLICATE KEY UPDATE pp2.pp_id=(SELECT newppid := pp2.pp_id);

我不确定这是 cc 部分吗?这是触发器中声明的变量,但它应该可以工作,因为你应该能够做一个 SELECT'hello',t.col1 FROM table t

有关错误收到的任何建议。

2 个答案:

答案 0 :(得分:1)

INSERT syntax不允许使用别名。

INSERT INTO table [ ( column [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
    [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]

答案 1 :(得分:0)

从INSERT查询中删除pp2