使用sql自动生成测试数据

在进行代码编写的时候,常常会用到大量的测试数据。手动的进行测试数据的编写费时费力,下面给大家介绍一个使用sql自动生成测试数据的方法。

1)建立测试数据表

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;

2) 编写事件进行数据的自动生成

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;

你可能感兴趣的:(SQL,sql,测试数据)