作为我正在编写的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
关于错误的任何建议都可以得到很大的好评。
最佳答案
INSERT syntax不允许使用别名。
INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]