MySQL
не хватает функциональности генератора (что позволило бы создавать наборы записей произвольной длины с нуля), поэтому, если количество записей фиксировано, вы можете сделать что-то подобное:
INSERT
INTO event (name, description, date)
SELECT name, description, date + INTERVAL n WEEK
FROM (
SELECT 1 AS n
UNION ALL
SELECT 2 AS n
UNION ALL
SELECT 3 AS n
) q
JOIN event
ON id = $myid
Как видите, макет запроса зависит от количества создаваемых событий, для чистого SQL
нет способа его параметризации.
Однако вы можете создать хранимую процедуру и просто вызвать INSERT
в цикле:
CREATE PROCEDURE prc_fill_event (p_id INT, p_cnt INT)
BEGIN
DECLARE _cnt INT;
SET _cnt = 1;
WHILE _cnt <= p_cnt DO
INSERT
INTO event (name, description, date)
SELECT name, description, date + INTERVAL _cnt WEEK
FROM event
WHERE id = p_id;
SET _cnt = _cnt + 1;
END WHILE;
END