您的位置:首页 > 数据库 > MySQL

mysql 动态sql 生成测试数据

2015-02-05 10:34 731 查看
#create testtable
CREATE TABLE `testtable` (
`id` int(11) NOT NULL,
`createdTime` datetime DEFAULT NULL,
`login` text,
`testid` varchar(63) DEFAULT NULL,
PRIMARY KEY (`id`)
)
PARTITION BY RANGE (TO_DAYS(createdTime))
(
PARTITION p01 VALUES LESS THAN (TO_DAYS('2013-07-01 00:00:00')),
PARTITION p02 VALUES LESS THAN (TO_DAYS('2013-08-01 00:00:00')),
PARTITION p03 VALUES LESS THAN (TO_DAYS('2013-09-01 00:00:00')),
PARTITION p04 VALUES LESS THAN (TO_DAYS('2013-10-01 00:00:00')),
PARTITION p05 VALUES LESS THAN (TO_DAYS('2013-11-01 00:00:00')),
PARTITION p06 VALUES LESS THAN (TO_DAYS('2013-12-01 00:00:00'))
);
##存储过程
drop procedure generator;
delimiter //
CREATE PROCEDURE generator
(
t_count INT(10)
)
BEGIN
DECLARE v_sql varchar(1000);
DECLARE v_count INT;
SET v_count = 0;
loop_label:LOOP
SET v_count = v_count + 1;
IF v_count%100000=0 THEN
select v_count;
END IF;
IF v_count>t_count THEN
LEAVE loop_label;
END IF;
SET v_sql = CONCAT('INSERT INTO testtable VALUES (',v_count,',\'FAILED\',v_count,'\')');
SET @sql = v_sql;
PREPARE sl FROM @sql;
EXECUTE sl;
DEALLOCATE PREPARE sl;
END LOOP;

END;
//
delimiter ;


##生成测试数据
set @t_count=10000000;
call generator(@t_count);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: