Věřím, že tímto způsobem to udělat nemůžete.
Abyste toho dosáhli, měli byste používat dynamické SQL.
Všimněte si, že kurzor nelze otevřít ani pomocí dynamického SQL. Ale ve vašem případě se zdá, že kurzor není potřeba.
Pokud správně rozumím vašemu kódu, můžete použít uživatelské proměnné a pravděpodobně dosáhnout toho, o co se snažíte, pomocí 2 dynamicky připravených příkazů.
SET @stmt_text=CONCAT("SELECT @score = SUM(`score`), @maxscore=SUM(`maxscore`) FROM ",
answertable, "WHERE `idParticipation`= ", partid);
PREPARE stmt FROM @stmt_text;
EXECUTE stmt USING @a;
A poté aktualizujete hodnoty pomocí níže uvedeného příkazu
SET @stmt_text=CONCAT("UPDATE", participationtable, " SET `score`[email protected],
`maxscore`[email protected] WHERE `idParticipation`=", partid);
PREPARE stmt FROM @stmt_text;
EXECUTE stmt USING @a;
DEALLOCATE PREPARE stmt;
Poznámka:Zkontrolujte prosím syntaxi. Nemohu to otestovat, abych to přesně ověřil, ale doufám, že to pochopíte.