作为我正在编写的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
有关错误收到的任何建议。
答案 0 :(得分:1)
INSERT syntax不允许使用别名。
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
答案 1 :(得分:0)
从INSERT查询中删除pp2