DBeaver社区版不支持Mock Data生成器,仅企业版提供;确认方式为Help→About中查看是否显示Enterprise Edition;社区版可用MySQL存储过程替代,需注意分批提交与外键依赖。

DBeaver 企业版才自带 Mock Data 生成器,社区版默认没有这个功能 —— 别白找菜单了,它真不在。
怎么确认自己用的是不是企业版
右上角菜单栏点 Help → About DBeaver,看窗口顶部是否显示 Enterprise Edition。如果只写着 Community Edition 或没提 “Enterprise”,那 Mock Data 功能就不可用。社区版用户强行右键表选 Generate mock data,会提示 “Not available in Community Edition” 或直接不出现该选项。
社区版用户替代方案:用 MySQL 存储过程手写批量插入
适合已有目标表、需要可控字段逻辑(比如外键关联、时间递增、状态轮换)的场景。DBeaver 社区版完全支持执行存储过程,只要 MySQL 服务端版本 ≥5.7 就能用。
- 先在 DBeaver SQL 编辑器里创建存储过程,例如:
DELIMITER $$<br>CREATE PROCEDURE generate_customers(IN count INT)<br>BEGIN<br> DECLARE i INT DEFAULT 1;<br> WHILE i INSERT INTO customers (name, email, age, created_at)<br> VALUES (<br> CONCAT('User', i),<br> CONCAT('user', i, '@example.com'),<br> FLOOR(18 + RAND() * 60),<br> DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 365) DAY)<br> );<br> SET i = i + 1;<br> END WHILE;<br>END$$<br>DELIMITER ; - 执行后调用:
CALL generate_customers(5000); - 注意:大数量(如 >10 万行)建议分批调用,避免事务过大锁表或超时;可在存储过程中加
COMMIT控制提交粒度
企业版 Mock Data 界面关键参数避坑指南
即使开了企业版,填错几个配置也会导致生成失败或数据不符合预期:
-
Row count是总行数,不是每次执行条数 —— 它和Batch size是两回事;设Row count=10000、Batch size=100,实际发 100 条 INSERT,每条含 100 行值(MySQL 8.0.19+ 支持多值 INSERT) -
Remove old data勾选后会执行TRUNCATE TABLE,清空前不二次确认,误点即丢数据 - 外键字段若没提前在数据库里建好参照表,Mock 生成器可能跳过该列或报错
Cannot resolve foreign key reference,得先确保被引用表有数据 - 日期类型列默认用
now()模拟,如需历史范围,得手动改成date_between('2024-01-01', '2026-12-31')这类函数(依赖 DBeaver 内置生成器支持)
真正麻烦的从来不是“怎么点出来”,而是字段间依赖关系、约束校验、以及生成后要不要再跑一遍 SELECT COUNT(*) 和 SELECT * FROM ... LIMIT 5 手动核对 —— 这步漏了,后面测试跑崩都不知道是数据问题还是逻辑问题。










