惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
量子位
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
B
Blog
U
Unit 42
C
Check Point Blog
I
InfoQ
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
宝玉的分享
宝玉的分享
爱范儿
爱范儿

博客园 - emanlee

python match case , 给出简单示例,并给出解释 Django3 核心入门知识点 HTML + CSS + JS 入门核心知识点 vs code 使用python,必须安装python解释器 Ubuntu 修改 ulimit‑n(nofile,最大打开文件数) 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 Word里打出“方框中间带勾”的符号 Windows 10/11 安装 MySQL 5.7 步骤(内部使用) Python编程语言的运行速度(CPU时间),与C语言对比 设置MySQL随操作系统Ubuntu启动 2026年秋季,2027年春季,西安理工大学 校历 博文阅读密码验证 - 博客园 Windows 11,用任务栏的搜索框搜索到一个软件,点击无法打开, 是bug 拆分视频的软件工具,Avidemux 开源免费 无法在此设备上加载驱动程序,可行可用 ubuntu 设置北京日期时间 mysql 在新电脑上导入,出现错误:ERROR at line 4019: Unknown command '\''. - emanlee 安装 yarn npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。 - emanlee VS code, 最近打开过哪些项目或文件夹,把这些备份下来,到另外一台电脑上恢复 傲梅分区助手 【好用】 ubuntu 可以使用Windows远程桌面连接吗?【可以】 把xshell的全部连接和密码,从一台Windows 10电脑,迁移到Windows11电脑。 Windows 远程桌面(mstsc)完整迁移方案(含历史连接记录、RDP 配置、保存的账号密码)【可行】 Endnote,如何能完整迁移库和模版
在Navicat中复制带有自动增长id字段的表格,如何把新表格的自...
emanlee · 2026-02-08 · via 博客园 - emanlee

在Navicat中复制带有自动增长id字段的表格,如何把新表格的自动增长id重新设置为从1开始

图片

在 Navicat 中复制带自动增长 id 的表格后,重置新表自增 ID 从 1 开始,有图形界面操作SQL 命令两种核心方式,按复制场景(仅结构 / 结构 + 数据)选择更高效的方法。


一、复制表格的两种方式

  1. 复制方式选择
    • 仅复制结构:右键原表 → 复制到当前位置(仅结构)→ 命名新表
    • 复制结构和数据:右键原表 → 复制到当前位置(结构和数据)→ 命名新表Navicat

二、重置自增 ID 从 1 开始的方法

方法 1:图形界面操作(推荐)

  1. 右键新表 → 选择设计表(Design Table)
  2. 在表设计界面,点击上方选项(Options)标签
  3. 自动递增(Auto Increment)输入框中,修改值为1
  4. 点击保存(Save)按钮,完成设置
  5. (可选)若需清空数据:右键新表 → 选择截断表(Truncate Table)→ 确认操作(会删除所有数据并重置自增 ID)

方法 2:SQL 命令操作(高效)

  1. 打开 Navicat 查询编辑器(Query Editor)
  2. 根据场景执行对应 SQL 语句:
    -- 场景1:仅重置自增ID(不清空数据)
    ALTER TABLE 新表名 AUTO_INCREMENT = 1;
    
    -- 场景2:清空数据并重置自增ID(等同于截断表)
    TRUNCATE TABLE 新表名;
    
    -- 场景3:若复制后数据不需要,可先删除数据再重置
    DELETE FROM 新表名;
    ALTER TABLE 新表名 AUTO_INCREMENT = 1;
    
  3. 执行 SQL 后,刷新表查看效果

三、不同场景的最佳实践

复制场景推荐操作说明
仅复制结构 方法 1(设计表改选项) 新表无数据,直接设自增起始为 1 即可
复制结构 + 数据但新表需重新编号 方法 2(TRUNCATE 后重新插入) 先清空数据重置 ID,再按需插入数据
复制结构 + 数据且保留原数据但新数据从 1 开始 方法 2(ALTER TABLE 语句) 仅修改自增计数器,不影响现有数据

四、注意事项

  1. 重置自增 ID 仅影响新插入数据,不会修改表中已存在记录的 ID 值
  2. 若新表已有数据,且设置的自增值小于当前最大 ID,数据库会自动调整为最大 ID+1
  3. 执行 TRUNCATE 或 DELETE 操作前,请确保数据已备份,避免误删重要信息
  4. 不同数据库类型(MySQL/PostgreSQL/Oracle)的自增设置有差异:MySQL 用 AUTO_INCREMENT,PostgreSQL 用序列(SEQUENCE),Oracle 用 IDENTITY 列

五、PostgreSQL/Oracle 特殊情况

  • PostgreSQL:
    -- 查找序列名
    SELECT pg_get_serial_sequence('表名', 'id列名');
    -- 重置序列
    ALTER SEQUENCE 序列名 RESTART WITH 1;
    
  • Oracle:
    -- 重置IDENTITY列
    ALTER TABLE 表名 MODIFY id GENERATED AS IDENTITY (START WITH 1);