ゆるゆる〜tech ver〜

勉強したこととかかく

ストアドプロシージャでさくっと100万レコード作る

クエリーチューニングするときにスクリプト使って入れるよりさくっと欲しいときに。。。

CREATE TABLE `test_table` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `tester_id` int(10) UNSIGNED NOT NULL,
  `hoge_id` int(10) UNSIGNED NOT NULL,
  `fuga_id` int(10) UNSIGNED NOT NULL,
  `status` TINYINT(1)  NOT NULL DEFAULT 0 COMMENT '0: incactive, 1,: active',
  `created_on` int(10) unsigned NOT NULL,
  `updated_on` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1回消しておく

drop procedure if exists doWhile;

作る

DELIMITER //
CREATE PROCEDURE doWhile()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE (i < 100) DO
    INSERT INTO test_table (tester_id, hoge_id,fuga_id, status, created_on ) VALUES (i, 29905, 119619, (CAST(RAND() * 2 AS UNSIGNED)), unix_timestamp());
     SET i = i+1;
END WHILE;
END;
// 

実行する

CALL doWhile();