mysql如何自定义自增主键值,以及所遇到的不生效问题

这篇具有很好参考价值的文章主要介绍了mysql如何自定义自增主键值,以及所遇到的不生效问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近有一个需求,要求对某些数据的数据库主键id格式化,要求id为(202311080000)的形式去自增,可以在get请求获取到这些数据时在请求路径上看到格式化的id,但是之前数据id有大于202311080000数值的,导致自增的主键值并没有生效(即使删除相关数据)

如何自定义自增主键值

第一种通过命令

alter table table_name auto_increment = 1

第二种使用navicat直接设置

选中表右键设计表,找到选项,在自定递增处即可自定义自增值,设置完成ctrl+s保存

mysql修改自动递增值不生效,mysql,数据库

注意:

此时表中不能存在id大于自定义值的数据,否则会不生效

遇到的坑

完成上述设置后我去调接口新增,在数据库查看发现新增的数据id还是以之前的大id自增的,也就是说自定义的自增id并没有设置成功,我的第一反应是不是设置的没有生效,用下面两个命令去查了下该表的下一个自增值

SHOW  table STATUS LIKE 'table_name'

mysql修改自动递增值不生效,mysql,数据库 

select auto_increment from information_schema.tables where table_schema='库名' and table_name='表名';

mysql修改自动递增值不生效,mysql,数据库

结果都显示为null,这个问题后面也没百度到,如果有大佬知道望解答。后面我在数据库写了一条insert语句,发现插入的id是我设置的自定义id,所以自定义id是生效的,那么问题就一定是出现在程序里了,这里我想到了是不是实体类没有定义好id

mysql修改自动递增值不生效,mysql,数据库

查看后,果然没有定义自增,加上 type = IdType.AUTO 问题解决文章来源地址https://www.toymoban.com/news/detail-851897.html

到了这里,关于mysql如何自定义自增主键值,以及所遇到的不生效问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SQL设置自增主键

    当表中字段无法充当主键或者无法设置联合主键时,可以考虑用自增序号设置主键 前提表中需要先创建一个id字段,用于充当主键,然后再进行以下操作 参数含义介绍: – 这里注意使用英文符号 – 序列重置到1000

    2024年02月13日
    浏览(39)
  • springboot~mybatis中使用selectKey获取自增主键

    在mybatis中,我们在insert操作之后,可以获取到自增主键的值,这个需要我们用到 这个方法,在使用时有一个坑需要注意,一会儿会说到。 假设我们有数据表id_offset,然后id是自增主键 我们在插入数据后,希望得到这个新插入的主键的值 我们不希望通过两条语句实现,因为这

    2024年02月14日
    浏览(41)
  • mysql表主键自增过大问题

    问题及项目环境   问题 最近在做项目时,发现我创建的每一个表的主键设置自增,在插入数据数据时会出现 自增值过大的问题。 问题展示: 在后端执行Basemapper中的insert()方法时,数据库中的主键id字段为下: 且我在对应的实体类的设置为下:  我们的期望时看到Id = 1,而不是

    2024年02月16日
    浏览(45)
  • mysql高并发下主键自增打来的问题

    在一般情况下,在新增领域对象后,都需要获取对应的主键值。使用应用层来维护主键,在一定程度上有利于程序性能的优化和应用移植性的提高。在采用数据库自增主键的方案里,如果JDBC驱动不能绑定新增记录对应的主键,就需要手工执行查询语句以获取对应的主键值,对

    2024年02月13日
    浏览(37)
  • mysql中删除数据后,新增数据时id会跳跃,主键自增id不连续

    引言: 在使用MySQL数据库时,有时候我们需要删除某些记录,但是删除记录后可能会导致表中的id不再连续排序。 如何实现删除记录后让id重新排序的功能。 如图: 删除数据后,中间的id不会自动连续。 下面有两种方法进行重新排序: 方法一: 删除表中id,重新添加id字段:

    2024年02月20日
    浏览(45)
  • 通过DBeaver 给Postgre SQL表 设置主键自增

    1.创建表 CREATE TABLE public.company ( id int4 NOT NULL , name text NOT NULL, age int4 NOT NULL, address bpchar(50) NULL, salary float4 NULL, join_date date NULL, CONSTRAINT company_pkey PRIMARY KEY (id) ); 2.插入数据(不传入id) INSERT INTO public.company (name, age, address, salary, join_date) VALUES(\\\'Kobe\\\', 20, \\\'Lake\\\', 10000, \\\'1996-07-13\\\');  

    2024年02月12日
    浏览(71)
  • Hibernate适配DM数据库主键自增配置

    hibernate有多种生成主键策略,例如assigned、increment、hilo、seqhilo、sequence、identity、native、uuid、guid等方法,其中native由hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式,灵活性很强。如果能支持identity则使用identity,如果支持sequence则使用

    2023年04月24日
    浏览(47)
  • Navicat连接linux虚拟机上的MySQL可能遇到的问题以及如何排查

    很大一部分原因是因为网上找不到比内容较全的文章作为一个小白解决所面临的问题 关于Navicat连接Linux上的MySQL为什么出现以下报错 这个报错很有可能是你的linux的防火墙不允许你连接到MySQL服务器导致的具体怎么排查,后面会详细说明。 这个报错有可能是以下原因 1、MySQ

    2024年02月02日
    浏览(55)
  • Oracle 数据库实现主键字段自增的方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 在 Oracle 数据库中,实现主键字段的自增功能对于确保数据的唯一性和简化数据插入操作非常重要。本文将介绍如

    2024年02月12日
    浏览(46)
  • mybatis实战:四、insert 用法(普通插入、返回主键自增的值)

    1.UserMapper.xml 1.指定特殊数据类型 2.<insert >元素,这个标签包含如下属性  2. UserMapperTest  1.只插入一条数据 2.回滚(不写入数据库) 3.插入后判断是否为空(为空/不为空,抛异常) 3.UserMapper 方法一: 使用 JDBC 方式返回主键自增的值  方法二: 使用 selectKey 返回主键的值

    2024年02月07日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包