DBeaver导出表结构失败主因是权限不足或驱动配置不当,解决方法有二:一是通过ER图导出HTML后复制粘贴至Excel(快捷但缺约束信息),二是手写SQL查询information_schema导出CSV(全量可控)。

导出表结构前先确认数据库驱动和元数据权限
直接点右键导出,常遇到“no metadata available”或字段类型全显示为 OTHER,根本原因是 DBeaver 没拿到完整的元数据——不是软件问题,而是当前数据库用户缺少 SELECT 权限(比如 PostgreSQL 的 pg_catalog 视图、MySQL 的 information_schema)、或者 JDBC 驱动没启用元数据查询参数。
- PostgreSQL 连接 URL 后追加
?currentSchema=public&includeAllSchema=true - MySQL 连接需在「Driver properties」里把
useInformationSchema设为true - Oracle 用户必须被授予
SELECT_CATALOG_ROLE或对ALL_TAB_COLUMNS等视图的显式 SELECT 权限
用“ER Diagram → Export as HTML/PDF”是最快捷的替代路径
原生不支持直接导 Excel 表结构(DBeaver 24.0 仍无 Export to Excel 表结构选项),但「ER 图导出」能绕过限制生成带字段名、类型、长度、是否为空、注释的表格化 HTML 文件,用浏览器打开后全选复制粘贴进 Excel 即可保留格式。
- 右键数据库 →
Generate ER Diagram→ 勾选要导出的表 - 图加载完 → 右上角
Export as HTML(不是 “Export as Image”) - 生成的 HTML 里,每张表对应一个
<table>,列名含 <code>Column Name、Type、Null、Comment - 用 Chrome 打开该 HTML → Ctrl+A → Ctrl+C → 在 Excel 中右键选择「匹配目标格式」粘贴
- MySQL 示例(含注释):
SELECT COLUMN_NAME AS `字段名`, DATA_TYPE AS `类型`, COALESCE(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION) AS `长度`, IS_NULLABLE AS `是否为空`, COLUMN_DEFAULT AS `默认值`, COLUMN_COMMENT AS `注释` FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'your_db' AND TABLE_NAME = 'your_table' ORDER BY ORDINAL_POSITION;
- 导出时在「Export Settings」中勾选
Quote all string values,避免字段含逗号导致 Excel 列错位 - SQL Server 要用
sys.columns+sys.types关联,不能只查INFORMATION_SCHEMA.COLUMNS(它不返回计算列、加密字段等细节) - 所有宣称“支持表结构导 Excel”的插件,底层都是调用同一套元数据 API,而 DBeaver 官方未开放该 API 的 Excel 序列化接口
- 已知有效 workaround 只有上面两种:HTML 复制粘贴(快但少约束信息),或手写 SQL 导出 CSV(全量但需写语句)
- 如果团队高频使用,建议把常用数据库的结构查询 SQL 存成 DBeaver 的
User Favorites,下次点一下就能执行
用 SQL 查询拼装结构清单再导出 CSV(最可控)
依赖 GUI 功能容易漏字段(比如默认不导索引、约束、默认值),真要完整结构,手写 SQL 查 information_schema 是唯一可靠方式。查完结果集右键 → Export Resultset → 格式选 CSV,Excel 可直接打开。
别信“第三方插件一键导 Excel”的说法
DBeaver 插件市场里标榜“Export to Excel”的插件(如 Excel Exporter)实际只支持导出查询结果集,**对表结构本身无效**——因为表结构不是结果集,它是元数据对象。强行安装后右键表依然看不到导出菜单,甚至可能引发连接卡死。

















