Генерация тестовых данных средствами MySQL
Средства генерации тестовых данных встроены во многие утилиты для работы с БД, существует большое количество сторонних и даже он-лайн инструментов. Конечно, набор реальных тестовых данных ничто не заменит, но для случая «нагенерить чего-нибудь да по-больше» можно обойтись и встроенными возможностями MySQL.
Данные удобно вставлять в цикле, однако согласно официальной документации циклы можно использовать только внутри триггеров, хранимых процедур и пр.:
MySQL supports the
IF,CASE,ITERATE,LEAVE,LOOP,WHILE, andREPEATconstructs for flow control within stored programs.
Хранимую процедуру можно сразу после использования удалить (способ генерации случайной строки взят из блога):
DELIMITER //
CREATE PROCEDURE `temp_sp` ()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i < 501 DO
INSERT INTO `table`(
`field1`,
`field2`
)
VALUES(
CONCAT('record#', i),
CONCAT('random data: ', SUBSTRING(MD5(RAND()) FROM 1 FOR 6))
);
SET i = i + 1;
END WHILE;
END//
DELIMITER ;
CALL temp_sp();
DROP PROCEDURE temp_sp;
