Вы также можете попробовать обновить встроенное представление:
UPDATE (select s.name student_name,
s.points student_points,
p.score playsin_score
from STUDENT s,
PLAYSIN p
where p.name = s.name)
SET student_points = student_points + CONSTANT * playsin_score;
Это также ограничивает строки в STUDENT, которые обновляются только набором, для которого есть
является строкой в PLAYSIN (вы также можете учитывать в своем текущем коде, что происходит со SCORE, если этот подзапрос может возвращать NULL). Вам понадобится уникальный или первичный ключ для playsin.name, чтобы использовать этот синтаксис, чтобы избежать ошибки проверки кардинальности соединения, но если это невозможно, тогда может быть полезен оператор MERGE. В любом случае, стоит рассмотреть MERGE, если у вас также есть код для добавления в STUDENT любых новых имен в PLAYSIN.