Jeg tror, du ikke kan gøre det på denne måde.
For at opnå dette bør du bruge Dynamic SQL.
Bemærk, at du heller ikke kan åbne en markør ved hjælp af Dynamic SQL. Men i dit tilfælde synes der ikke at være behov for en markør.
Hvis jeg forstår din kode korrekt, kan du bare bruge brugervariabler og sandsynligvis opnå det, du prøver at gøre, ved at bruge 2 dynamisk forberedte sætninger.
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;
Og så opdaterer du værdierne ved hjælp af nedenstående erklæring
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;
Bemærk:Tjek venligst syntaksen. Jeg kan ikke teste det for at bekræfte det nøjagtigt, men jeg håber du forstår.