Navicat 不支持直接导出为 .accdb 或 .mdb 文件,仅 Navicat Premium(Windows 版)可通过 ODBC 间接写入,但需本地安装匹配位数的 Access Database Engine;最稳定方式是导出为 UTF-8 with BOM 编码的 CSV,再在 Access 中手动导入并设置字段类型与主键。
Navicat 不支持直接导出为 .accdb 或 .mdb 文件
navicat 本身没有内置 access 导出功能,它不能像导出 mysql 或 postgresql 那样一键生成 .accdb。你看到的“导出向导”里没有 access 选项,不是操作遗漏,是压根不支持。
常见错误现象:Export to Access 选项灰色不可选;尝试选择“Microsoft Access”格式时提示“Unsupported format”或直接报错 Unknown export format。
- Navicat for MySQL / PostgreSQL / SQLite 等版本均无原生 Access 导出能力
- 只有 Navicat Premium(Windows 版)支持通过 ODBC 桥接方式间接写入 Access,但需本地安装 Access Database Engine
- 导出为 CSV / Excel 再手动导入 Access 是最稳定、兼容性最高的路径
用 CSV 中转是最可靠的方式
Access 的“导入外部数据”对 CSV 支持最成熟,字段类型推断合理,中文乱码可控,适合绝大多数表结构。
实操建议:
- 在 Navicat 中右键表 →
Export Wizard→ 格式选CSV,编码选UTF-8 with BOM(避免 Access 导入时中文变问号) - 勾选
Export column names in first row,否则 Access 无法识别字段名 - 若字段含逗号、换行符或引号,务必启用
Enclose fields in double quotes - 不要导出为
Excel 97-2003 (.xls):Navicat 生成的 .xls 实为 CSV 伪装,Access 导入时会报错External table is not in the expected format
用 ODBC 写入 Access(仅限 Windows + Navicat Premium)
这条路能跳过中间文件,但依赖系统级组件,容易卡在驱动或权限上。
前提条件:
- 必须使用
Navicat Premium(非 Standard 或 Essentials) - Windows 系统已安装
Microsoft Access Database Engine(注意 32/64 位与 Navicat 一致,否则连不上ODBC Data Source Administrator) - 目标
.accdb文件不能被 Access 或其他程序打开(独占锁会导致Operation must use an updateable query)
操作路径:Navicat → Data Transfer → 选择源数据库 → 目标类型选 ODBC → 配置 DSN 指向你的 .accdb 文件 → 映射字段后执行。过程中若提示 Cannot open database,大概率是引擎位数不匹配。
字段类型和主键要注意的坑
Access 对数据类型敏感,尤其从其他数据库迁移时,自动映射常出错。
- Navicat 导出 CSV 后,在 Access 中用“导入向导”时,手动为每列指定类型(别信“让 Access 自动选择”):比如 MySQL 的
TINYINT(1)常被当成布尔,但 CSV 里是 0/1,Access 可能误判为数字而非是/否 - 主键不会随数据一起导入。必须在 Access 中打开表设计视图,手动设主键,否则后续关联或更新会失败
- 时间字段若含毫秒(如
2024-05-20 14:30:45.123),Access 会截断为秒级,且可能报Data type mismatch in criteria expression
复杂点在于:Access 不是纯文件格式,它带查询、关系、索引等元数据。Navicat 能导出的只是数据快照,结构和逻辑得靠人工补全。别指望一次点击就还原整个 .accdb 工程。










