当我通过在存储过程中提到call ranking_long()来运行存储过程ranking_long()时,结果如下所示。
product_id plg_count rank
11 6962271 1
10 2705517 2
379 1955067 3
378 196865 4
...........
现在我需要使用存储过程将上面的结果向上插入(当有相同的产品标识时更新,或者当没有相同的产品标识时插入)到名为dtb\u ranking的表中,该表的结构与上面的结果(产品标识、plg\u count、rank)相同。所以我尝试了下面的存储过程,
INSERT INTO dtb_ranking (`product_id`,`plg_count`,`rank`) VALUES (CALL `ranking_long`()) ON DUPLICATE KEY UPDATE plg_count = VALUES(plg_count), rank = VALUES(rank);
我收到了如下的错误信息。
处理您的请求时出现一个或多个错误:无法执行查询:
CREATE DEFINER=xxxxxxx@% PROCEDURE call_ranking_long()
NOT DETERMINISTIC
NO SQL
SQL SECURITY DEFINER
INSERT INTO dtb_ranking
(product_id,plg_count,rank)
VALUES (CALL ranking_long())
ON DUPLICATE KEY UPDATE plg_count = VALUES(plg_count), rank = VALUES(rank);
mysql的消息:#1064-您的sql语法有错误;请查看与mysql服务器版本对应的手册,以了解在第1行的重复键更新plg\u count=values(plg\u count),ra'上使用“call ranking\u long()”附近的正确语法
如果有人能告诉我应该如何处理上面的脚本(插入到dtb\ U排名…),我将不胜感激。
暂无答案!
目前还没有任何答案,快来回答吧!