在进行代码编写的时候,常常会用到大量的测试数据。手动的进行测试数据的编写费时费力,下面给大家介绍一个使用sql自动生成测试数据的方法。
CREATE TABLE `datatable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`birthday` varchar(255) DEFAULT NULL,
`cityid` int(11) DEFAULT NULL,
`createdate` datetime DEFAULT NULL,
`alterdate` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
CREATE EVENT db_table_data
ON SCHEDULE
EVERY '1' SECOND STARTS '2019-05-30 17:44:22'
ON COMPLETION PRESERVE
DISABLE
DO INSERT INTO db_table(
username,
birthday,
cityid,
createdate,
alterdate
)
VALUES(
CONCAT(SUBSTRING(RAND(), 3, 8), '@qq.com'),
DATE_ADD(NOW(), INTERVAL - SUBSTRING(RAND(), 3, 2) YEAR),
SUBSTRING(RAND(), 3, 2),
DATE_ADD(NOW(), INTERVAL - SUBSTRING(RAND(), 3, 3) DAY),
DATE_ADD(NOW(), INTERVAL - SUBSTRING(RAND(), 3, 2) DAY));
此时,每秒钟将自动生成一条测试数据。
如果事件未执行,可能是事件未开启,请执行以下操作,将事件打开:
开启事件:
set global event_scheduler = 'on';
开启事件任务:
alter event db_table_data on completion preserve enable;