Как сохранить результат хранимой процедуры в таблице с помощью хранимой процедуры в mysql

Когда я запускаю хранимую процедуру rank_long (), упоминая о вызове rank_long () в хранимой процедуре, результат будет следующим.

product_id  plg_count   rank
11          6962271     1
10          2705517     2
379         1955067     3
378         196865      4
...........

Теперь мне нужно обновить (обновить, если есть тот же product_id, или вставить, когда нет того же product_id) результат выше в таблицу с именем dtb_ranking, которая имеет ту же структуру с указанным выше результатом (product_id, plg_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's message: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CALL ranking_long()) ON DUPLICATE KEY UPDATE plg_count = VALUES(plg_count), ra' at line 1

Я был бы признателен, если бы кто-нибудь мог сказать мне, что мне делать с приведенным выше сценарием (ВСТАВИТЬ dtb_ranking ...).

VALUES (CALL ranking_long()) невозможно, нужно ЗВОНОК отдельно ..
Raymond Nijland 11.04.2018 13:16

Спасибо, Раймонд Нейланд. Итак, я не могу утверждать, как ЗНАЧЕНИЯ (CALL rank_long ()), что именно я должен указать в скрипте для этой части. Я все еще в замешательстве.

user27240 11.04.2018 13:51

Кажется, нет способа сделать это напрямую (без изменения сохраненной процедуры). Взгляните на stackoverflow.com/questions/687102/….

Vatev 11.04.2018 13:59

Спасибо, Ватев. Я ищу аналогичный случай для разделения этих вызовов, но не могу найти. Не могли бы вы показать мне пример, как это работает?

user27240 12.04.2018 19:22
0
4
147
0

Другие вопросы по теме