Мне нужно настроить триггер в MariaDB 10.1, который вставляет строки в другую таблицу. Пока триггер выглядит так для отдельной записи:
DELIMITER //
CREATE TRIGGER generate_items
AFTER INSERT
ON my_table
FOR EACH ROW
BEGIN
-- some_id is the id from my_table
INSERT INTO another_table(some_id, some_value)
VALUES (NEW.id, 'x');
END;
//
DELIMITER ;
Моя проблема в том, что some_value
- это не единственная запись, которую нужно вставить, а список значений, извлеченных из другой таблицы. На самом деле мне нужно что-то вроде этого в триггере:
-- Pseudo-code for illustrating
SET @values = SELECT value FROM some_table WHERE condition = true;
FOREACH(@value in @values) DO
INSERT INTO another_table(some_id, some_value) VALUES (NEW.id, @value);
END
Какие возможности у меня были бы с MariaDB 10.1? Я читал, что MariaDB 10.3 предлагает цикл FOR, но мы еще не можем обновить базу данных.