DBeaver原生支持直接导出Markdown表格,需通过“导出数据”流程调用DataExporterMarkdownTable类,关键配置包括nullString、showHeaderSeparator和escapeCellContent,批量导出整库结构需借助INFORMATION_SCHEMA.COLUMNS查询驱动。

直接导出 Markdown 表格是 DBeaver 原生支持的功能,无需插件或脚本,但必须走「数据导出」流程,不能靠右键复制粘贴。
选对导出入口:不是“复制”,而是“导出数据”
很多人误以为在结果集右键选“复制”→“复制为 Markdown”就能生成标准表格,其实那只是 IDE 级别的简易文本拼接,不带表头分隔线、不处理空值、不转义特殊字符,也不受 nullString 配置控制。真正可靠的 Markdown 表格导出路径是:
- 在查询结果面板或导航树中选中一张表(或执行完 SQL 后的任意结果集)
- 右键 → 导出数据 → 在弹出对话框里选中 Markdown 文件
- 点击“下一步”,配置选项后完成导出
这个路径调用的是 DataExporterMarkdownTable 类,它才是官方认可的、可配置的 Markdown 表格导出器。
关键配置项:nullString、showHeaderSeparator、escapeCellContent
导出前点开“设置”按钮(通常在向导第二步),你会看到几个影响最终 Markdown 可读性和兼容性的核心参数:
-
nullString:建议设为NULL(全大写),和 SQL 语义一致;若设为空字符串,在 Git 提交时容易因“看不见的变更”引发无意义 diff -
showHeaderSeparator:务必勾选,否则生成的 Markdown 缺少---分隔行,GitHub/GitLab/Typora 等均无法识别为表格 -
escapeCellContent:建议启用,自动将|、\、[等 Markdown 特殊字符转义,避免表格错位 -
confluenceFormat:仅当目标平台是 Confluence 才开启;它会把表头改成||A||B||格式,普通 Markdown 渲染器不认
批量导出整库结构:用 SQL 查询驱动 Markdown 导出
单表导出方便,但要给整个 schema 做数据字典,不能一张张点。正确做法是先写一条查 INFORMATION_SCHEMA.COLUMNS 的 SQL,再导出结果:
使用 SQLite FTS5 对结构化 Markdown 文档库进行全文搜索,适用于需要快速、高效搜索大量 Markdown 文章的场景。
SELECT TABLE_NAME AS `表名`, COLUMN_NAME AS `字段名`, DATA_TYPE AS `类型`, IS_NULLABLE AS `是否为空`, COLUMN_DEFAULT AS `默认值`, COLUMN_COMMENT AS `注释` FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_db_name' ORDER BY TABLE_NAME, ORDINAL_POSITION;
执行后,在结果集右键 → 导出数据 → Markdown 文件,即可一次性拿到结构化文档。注意:TABLE_NAME 和 COLUMN_NAME 必须用反引号包裹,否则含下划线或数字的字段名在 Markdown 中可能被误解析。
导出后发现表格错乱?先检查这三处
常见问题不是 DBeaver 导出失败,而是下游渲染环境或配置没对齐:
- 用 VS Code 或 Typora 打开 .md 文件却显示为纯文本:确认文件编码是 UTF-8 无 BOM,且未被编辑器误判为 plain text
- 表格列宽严重不均或换行错位:大概率是
escapeCellContent=false且字段值含|或换行符,重导并勾选该选项 - Git diff 显示大量“空行变化”:说明团队成员本地
nullString设置不一致(有人设为空,有人设为NULL),需统一在数据库 → 导出数据 → 设置里强制指定
最易被忽略的一点:DBeaver 对「界面显示 null」「XLSX 导出 null」「Markdown 导出 null」用了三套独立配置,改了其中一个,其他两个不会联动。做交付前务必逐个场景验证。










