у вас в UPDATE входит два подзапроса. какой-то из них возвращает больше одной строки, что не применимо в данной ситуации.
например, вот этот блок
(SELECT value1 FROM test1)
-
в случае, если ваша таблица test1 содержит больше одной строки, этот запрос вернет их все.
если вам нужно получить новое значение столбца обновляемой таблицы, вы можете, как заметил комментатор выше, использовать NEW или OLD:
UPDATE `database`.`test2` SET `value1` = NEW.value1 * 2...
аналогично предыдущему,
WHERE (`id` = (SELECT id FROM test1));
вернет столько строк с одним столбцом id, сколько существует в таблице test1, что не допустимо для оператора равенства.
если вам нужно обновить строку в таблице test2, id которой такой же, как и id у обновляемой записи в test1, то следует использовать NEW.id и ваш запрос приобретет следующий вид:
CREATE DEFINER=`root`@`localhost` TRIGGER `afupd_yzv2` AFTER UPDATE ON `test1` FOR EACH ROW BEGIN
UPDATE `database`.`test2` SET `value1` = NEW.value1 * 2 WHERE `id` = NEW.id
END