登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

Navicat 定时导出单表结构的配置方法

来源:17golang原创

时间:2026-11-13 14:43:24 128浏览 收藏

如果只想每天或每周留一份某张表的建表结构,关键不是导出后手工删掉数据,而是在 Navicat 的 Data Transfer 任务里关闭 Create records,再把只包含目标表的 Profile 加入 Automation。这样生成的是结构 SQL,后续还能按计划重复执行。

官方地址:https://www.navicat.com/manual/online_manual/en/navicat_18/win_manual/automation.html

要点速览
  • 用 Tools > Data Transfer 指定 SQL 文件目标,并取消 Create records。
  • 对象选择页只保留一张表,先手动执行一次,再保存为 Profile。
  • 在 Automation 中新建 Batch Job,保存后再设置计划时间。

一、先把导出范围锁定为单表结构

先确认连接密码已经保存在 Navicat 的连接配置中,然后打开 Tools > Data Transfer。Source 可以选连接、数据库或 Schema;Target 选择 File,并指定一个便于归档的 SQL 文件名,例如 customer_profile_schema.sql。

进入 Options 后,找到 Record Options,取消 Create records。这个开关决定是否生成表内记录语句;本任务只留结构定义,不要用“导出后清理 INSERT”的方式代替。字符集、表选项和索引等结构相关选项按目标数据库的迁移要求保留。

Navicat Data Transfer 单表结构导出说明图,Source、SQL 文件目标与关闭 Create records 的状态
图1:Data Transfer 单表结构导出的操作示意图,Create records 处于关闭状态。

二、只选择需要的那一张表

点击 Next 进入对象选择页。这里最容易出错的是保留了默认全选,导致同一数据库的其他表也进入 SQL 文件。先取消全选,再按 Schema 和表名筛选,只勾选目标表;如果界面同时列出视图、函数或其他对象,也不要一并选择。

点击 Start 先执行一次。打开生成的 SQL 或日志,确认文件里有目标表的定义、索引或约束等预期内容,同时没有该表的记录数据。确认无误后点击 Save Profile,给 Profile 起一个能说明对象和用途的名字,例如 customer_profile_schema。只有保存后的 Profile 才适合交给 Automation 调度。

检查项正确状态常见误区
对象只勾选一张目标表沿用全选,把同库对象混进来
记录Create records 关闭生成 INSERT 后再人工删除
输出SQL 文件名包含表名和用途多个任务共用模糊的固定文件名

三、把保存好的 Profile 放进批处理

打开 Automation,点击 New Batch Job。在 General 页选择对应的 Export 或 Data Transfer 类型,在 Available Jobs 中找到刚才保存的 Profile,双击或拖到 Selected Jobs。一个批处理可以包含多个 Job,但本例只放单表结构 Profile,便于定位失败原因。

先点击 Save 保存 Batch Job,再点击 Set Task Schedule 设置每日、每周或指定时间运行。Windows 版计划任务如果选择“无论用户是否登录都运行”,保存时还需要提供系统用户密码;连接密码也必须预先保存在 Connection 配置中。macOS、Linux 或其他版本的入口和计划任务能力可能不同,应以当前版本界面为准。

Navicat Automation 批处理说明图,Selected Jobs、Set Task Schedule 与下次执行时间
图2:Automation 批处理的结果示意图,已选 Profile 与计划执行状态清晰可见。

四、用历史记录确认文件确实按计划生成

在 Batch Job 的 History 页启用 Enable Batch Job History,它会记录手动执行和自动执行的时间、耗时与完成状态。第一次到点后,同时检查 History 的成功状态和目标目录中的 SQL 文件更新时间,确认任务确实落到了预期目录。

如果任务没有执行,按这个顺序排查:Profile 是否仍能手动运行;连接密码是否过期;Windows Task Scheduler 使用的账户是否有数据库和输出目录权限;目标文件是否被其他进程占用。若任务成功但文件内容不对,回到 Profile 的对象选择页和 Record Options 检查,不要先修改调度时间。

Navicat 批处理历史记录说明图,成功状态、执行时长与单表结构 SQL 文件核对关系
图3:定时导出完成后的历史记录与文件核对说明图,不代表真实运行截图。

常见问题

为什么定时任务里找不到刚创建的导出配置?

通常是导出向导完成后没有点击 Save Profile,或者保存后打开了不同连接/项目下的 Job 列表。先手动确认 Profile 存在,再回到 Automation 刷新 Available Jobs。

关闭 Create records 后还要不要选择字段?

结构导出重点是对象和结构选项,不需要为记录数据选择字段。字段选择页仍出现时,确认当前走的是 Data Transfer 的结构备份路径,而不是面向数据文件的普通 Export Wizard。

如何避免多次执行覆盖同一个 SQL 文件?

如果需要保留每次结果,在 Profile 的文件名设置中加入时间戳或按日期生成目录;如果只保留最新结构,则固定文件名,并让 History 作为执行记录。

声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>