达梦数据库,数据库重置主键id从1开始

这篇具有很好参考价值的文章主要介绍了达梦数据库,数据库重置主键id从1开始。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

今天中国国寿XX项目XC环境达梦遇到id主键自增顺序不对的问题,那么如何修改一个表的自增主键顺序呢?下边通过具体测试案例进行深入分析,通过delete/update/truncate/alter观察数据的变换总结出结论,欢迎各位喜欢达梦数据的爱国人士一起研究学习一下。

二、delete/update/truncate/alter分别进行测试

1、创建测试表及基础测试数据。

创建测试表

--创建测试表,定义id列自增
create table dmtest (id int IDENTITY(1,1) primary key,name varchar(10));
--插入测试数据并提交
set identity_insert dmtest on
insert  into  dmtest values(1,'张三'),(2,'李四'),(3,'王五');
commit;
set identity_insert dmtest off
--插入测试数据
insert  into  dmtest values('张三'),('李四'),('王五');
commit;

查看结果:

达梦数据库,数据库重置主键id从1开始

        可以看出,设置列为主键自增不能重复,不需要赋值插入,默认从1自增。对自增列赋值需要设置SET IDENTITY_INSERT为ON时,才能对自增列赋值。命令如下:set identity_insert 表名 on;

达梦数据库,数据库重置主键id从1开始

如果指定id序列后不在指定,后续ID键值会根据目前最大值+1递增,如下图:

达梦数据库,数据库重置主键id从1开始

 2、delete操作主键自增变化。

达梦数据库,数据库重置主键id从1开始

 由此可见,delete删除之后再insert,id列会按照删除之前最大值+1进行自增,如果指定id大小插入后再insert也会按照删除之前最大值+1进行自增,因此delete不会改变id自增属性。

3、update 操作主键自增变化。

达梦数据库,数据库重置主键id从1开始

 此时update修改会报错,提示:行附近出现错误[-2664]:试图修改自增列[ID].因此,update无法对自增列进行修改。

4、truncate  操作主键自增变化。

达梦数据库,数据库重置主键id从1开始

 truncate 表之后发现自增ID序列被重置,充实初始化到建表时状态,从1开始,步长为1进行自增。但是数据丢失了,如果数据量特别大,truncate之后再进行insert势必会造成时间上的浪费。

5、删除主键属性后再添加,操作主键自增变化

达梦数据库,数据库重置主键id从1开始

 删除主键自增属性后再添加,无法重置属性,仍然是按照最近一次修改的最大值+1自增。

三、总结

        通过相关测试结论如下:

  1. delete删除之后再insert,id列会按照删除之前最大值+1进行自增,如果指定id大小插入后再insert也会按照删除之前最大值+1进行自增,因此delete不会改变id自增属性。

  2. update无法对自增列进行修改。

  3.  truncate 表之后发现自增ID序列被重置,充实初始化到建表时状态,从1开始,步长为1进行自增,但是数据丢失了。

总之如下:

        清空表清空表数据,新增数据时,主键仍然从未删除之前的最后一条数据开始增加。
        截断表清空表数据,新增数据时,主键从1开始,相当于以下的两条SQL。

四、解决方案

1、通过truncate table进行自增属性初始化递增,恢复到建表初始状态。

2、在不删除数据情况下如何进行ID自增主键初始化排序,从1开始。

手动指定序列号非自增。如下图:

达梦数据库,数据库重置主键id从1开始

 不删除数据进行序列自增从1开始。

 alter table dmtest drop id;
 alter table dmtest add id int IDENTITY(1, 1) not null primary key;

 结果如下图:

达梦数据库,数据库重置主键id从1开始

        这个可以不删除数据,但是会发生一个问题,就是ID,NAME列的顺序发生了改变,而且达梦不像MySQL那样支持添加字段可以指定在某个字段的前后,即 before、after指定添加列的位置。可能后续版本会新增这个功能。文章来源地址https://www.toymoban.com/news/detail-488305.html

到了这里,关于达梦数据库,数据库重置主键id从1开始的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 达梦数据库创建及数据库实例管理

    数据库配置助手创建数据库调用 dbca.sh 图形化界面创建数据库: [dmdba@DCA02 tool]$ ./dbca.sh 2021-01-11 11:43:45 [com.dameng.dbca.Startup] [INFO] 启动 DBCA 指定数据库名称、实例名称(单机情况下数据库和实例名称可以相同),指定端口号: 簇大小、页大小、字符集、 字符串 大小写敏感、

    2023年04月08日
    浏览(48)
  • 达梦数据库 优化

    优化不能仅从数据库方面考虑,比如,在存储达到数据库极限、应用涉及人员设计的代码稀巴烂的情况下,进行调优就是杯水车薪的效果。 涉及到优化人员: 数据库管理员 应用程序架构师 应用程序设计人员 系统管理员 存储管理员 涉及到的优化内容: 应用程序:(与开发人员

    2024年04月09日
    浏览(45)
  • 达梦数据库导入导出

    说明(默认值) USERID 用户名/口令 FILE 导出文件 (dexp.dmp) DIRECTORY 导出文件所在目录 FULL 整库导出 (N) OWNER 以用户方式导出 格

    2024年02月14日
    浏览(70)
  • 达梦数据库安装教程

    目录 安装教程 安装前准备 新建dmdba用户 修改文件打开最大数 挂载镜像 新建安装目录 数据库安装 配置环境变量 配置实例 注册服务 启动停止服务 启动 查看端口 停止 数据库目录结构介绍 数据库安装目录 DM8下载地址产品下载 | 达梦数据库 (dameng.com) 安装环境:centos7.9 新建

    2024年02月06日
    浏览(67)
  • 达梦数据库 模式 研究

    数据库模式 达梦数据库支持三种模式 normal, primary, standby 普通模式 normal 为数据库的普通模式,当数据库启动后,默认为该模式 该模式下,用户可以 正常进行 数据库操作 正常生成 本地归档, 但不发送实时归档、即时归档 和 异步归档 转换命令 备库模式 该模式下,只能进行

    2024年02月01日
    浏览(39)
  • 达梦数据库权限管理

    在对数据库权限进行分配时,对于某些人员只能给部分的访问和操作权限。那么在DM数据库中我们该如何去配置相应的权限呢? 我们下面来进行详细解析。 我们的测试环境是 DM8 。 1、我们首先来建立一个测试用户test; SQLcreate user test identified by test123456; 2、接下来看一下TEST用

    2024年02月09日
    浏览(83)
  • 达梦数据库的使用

    官网文档:https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html 达梦数据库安装成功后,会显示如下客户端 用于建立连接,建表,查询等操作,可在模式下查看建立的数据库信息 在库中建表,表名只能大写,或者查询时报错 用于启动停止服务 用于导入导出数据 建立迁移任务,选

    2024年01月23日
    浏览(53)
  • MySQL:创建数据库,数据表,主键和外键

    目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表:  主键约束: 单字段主键: 多字段联合主键: 外键约束: MySQL数据库安装了很久,一直也没静下心来学习,因为起步太晚,所以什么都想学点,又感觉有些力不从心,目前

    2023年04月27日
    浏览(114)
  • 达梦数据库手工注入笔记

    前言 随着信创产业的逐步普及,很多小伙伴在渗透实战时会越来越多的遇到国产化数据库,如达梦、人大金仓等。如果使用该类数据库的站点存在sql注入漏洞,用sqlmap等工具无法支持我们直接得到想要的数据,我们需要理解这些数据库的语法才能更好的进行手工注入。本文总

    2024年02月16日
    浏览(50)
  • Linux达梦数据库安装

    说明: 达梦官方推荐是创建新的用户进行安装,但是在公司自己私创用户是违规的,也可以直接使用root用户进行安装,新用户和使用root安装不同点我会标注出来。 a、创建用户组dinstall.   groupadd dinstall  b、创建安装用户dmdba.   useradd -g dinstall -m -d /home/dmdba -s /bin/bash d

    2024年02月09日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包