正在测试一个招聘功能,需要生成一堆测试数据,放到某个公司下。
虽然之前尝试过 golang 的 faker 库,参考:自动创建测试数据的库 go-faker。 但是,我感觉,还是不如直接写 SQL 语句来的自由方便。
这里记录一下如何批量生成 MySQL 数据库测试数据的步骤:
先录入一条测试数据
在 web 管理后台,或者 MySQL WorkBench 的 GUI 界面。手动录入一条测试数据记录。
用 Web 管理后台的好处是,可以顺便测试一下开发的管理页面功能是否有 bug。
生成单条的 insert SQL
在 MySQL WorkBench 里,查询显示当前数据表的所有记录。
可以复制某一行(copy row),然后 paste row 黏贴,点击 apply,就能看到对应的 insert SQL 语句。 这条语句记录下来,后面会用到。
SQL 的 for 循环插入
让 AI 写了个 SQL for 循环。这要是让我写,我是写不出来的。。。
use some_db;
-- 创建存储过程
DELIMITER $$
CREATE PROCEDURE batch_insert()
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE max_count INT DEFAULT 10; -- 设置循环次数
WHILE i <= max_count DO
-- 执行插入语句,这里用变量控制
INSERT INTO `job`
(`title`, `company_id`, `location`)
VALUES
(CONCAT('后台开发', i), '1', '烟台');
SET i = i + 1;
END WHILE;
END$$
DELIMITER ;
-- 调用存储过程
CALL batch_insert();
-- 删除存储过程
DROP PROCEDURE IF EXISTS batch_insert;
把里面的 insert 语句替换成自己的即可。
然后后面就可以调用存储过程来批量插入测试数据了。
这个比正常的 faker 库方便的地方是,可以自由指定某个字段的值,例如给某个公司插入 100 条招聘信息。 要灵感得多。
关于作者 🌱
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式