MySQL:获取Auto_increment失败问题记录

news2024/11/23 0:32:01

项目场景:

人员权限设置,定义了一张存储自增id的表sys_id_sequence(A表)

/*A表定义*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for sys_id_sequence
-- ----------------------------
DROP TABLE IF EXISTS `sys_id_sequence`;
CREATE TABLE `sys_id_sequence`  (
  `id` int(6) NOT NULL AUTO_INCREMENT,
  `date_stamp` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1147 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

和一张人员权限表auth_rule_admin_role(B表),其中B表的主键为U+六位A表的自增主键,不足六位前置补零,例如U000001,每次插入B表前,先进行A表的插入删除,用来进行自增

#插入自增序号                                
insert into sys_id_sequence (date_stamp)
          values(now());      
#删除自增序号
delete from sys_id_sequence;

这样,每次查询自增id就是最新的(不要问为啥这么设计,这个项目的司龄比我大)

#获取自增id
select
        CONCAT('U', LPAD(CAST(
        (SELECT Auto_increment FROM information_schema.`TABLES` WHERE Table_Schema = 'tacs_specs'
        AND table_name = 'sys_id_sequence') AS CHAR),6,'0'));

然后把最新的自增id拼接好吐给B表即可


问题描述

获取自增id失败,通过查询sql查出来结果是0,导致插入B表失败


原因分析:

考虑过是MySQL版本问题,导致这样获取自增id失效,因此查看版本信息

#版本
show VARIABLES like '%version%';

在这里插入图片描述
发现版本没问题,不是网上说的MySQL8失效问题,然后猜想是否因为A表为空导致,毕竟它执行了删除,因此插入一条数据,然后再获取,可以自增了,但是步长为2,看下步长设置吧

#查询自增步长
SHOW VARIABLES LIKE '%auto_increment%';

在这里插入图片描述
给它步长设置为1

#设置步长
SET auto_increment_increment=1

但是项目中明明是插入删除,运行了好几年都没问题,因此插入数据也不可靠,但是转念一想,是不是因为插入了数据给它重新赋值了当前的自增序号,因此,查下自增序列

#查询当前自增序列
SHOW TABLE STATUS FROM tacs_specs LIKE 'sys_id_sequence';

在这里插入图片描述
果然如此,那么我们给它重置下自增序号即可,查询B表,找到最大的序号,设置为那个值即可(注:这里的截图我已经重置完成了)


解决方案:

重置自增序号

#重置自增
alter table sys_id_sequence auto_increment=1147;

在这里插入图片描述
再次查询,序号没问题,然后让运维同事试着新增数据,成功,完美解决(猜想这个问题是因为服务关闭,MySQL重启导致自增序号失效,当然,MySQL获取自增id通过SELECT_LAST_INSERT()函数也可以,项目当初没有使用这个方法是在考虑线程安全问题吗?可这个项目没多少人用啊,搞不懂老项目…)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch深度学习实战(16)——面部关键点检测

PyTorch深度学习实战(16)——面部关键点检测 0. 前言1. 关键点检测1.1 关键点检测模型分析1.2 数据集分析 2. 面部关键点检测3. 2D 和 3D 面部关键点检测小结系列链接 0. 前言 我们已经学习了如何解决二分类(猫狗分类)和多分类( fashionMNIST )问题。本…

Python(八十七)函数的定义与调用

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

ffmpeg抠图

1.不用png,用AVFrame 2.合流 3.图片抠图透明 (1.)mp4扣yuv图,(2)用1. (3)用抠图算法函数对yuv进行处理 ffmpeg -y -i TJTV.png -vf colorkey0x0000FF:0.5:0.0 -c:v png t.png0x0000FF:六位每两位分别表示红绿蓝,因此它是对…

如何提高技术领导力?与你分享 5 个心得

技术领导力于很多人而言都是谜一般的存在。有观点认为,实战经验丰富的资深开发最终只有成为技术管理者才能继续成长。从某些方面来看,这可能是对的,但考虑到公司结构和规章制度等,想要完成从「个人贡献者」到「技术管理者」的跨越…

mysql自动删除过期的binlog

一、binlog_expire_logs_seconds 配置项 mysql 8.0使用配置项 binlog_expire_logs_seconds 设置binlog过期时间,单位为秒。 mysql旧版本使用配置项 expire_logs_days 设置binlog过期时间,单位为天,不方便测试。 在 8.0 使用 expire_logs_d…

CH2--x86系统架构概览

2.1 OVERVIEW OF THE SYSTEM-LEVEL ARCHITECTURE IA-32 与 IA32-e 模式 图中的实线箭头表示线性地址,虚线表示段选择器,虚线箭头表示物理地址 2.1.1 Global and Local Descriptor Tables 全局描述符表 (GDT) GDT是一个全局的段描述符表,它存储…

「聊设计模式」之适配器模式(Adapter)

🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅! 前言 在软件开发中,经常会涉及到现有系统的改造和升…

微信小程序云开发手搓微标提示,逻辑思路记录及代码实现

目录 写前小叙 功能需求背景 首页js的逻辑思路第一部分 发布公告js逻辑 首页js显示“新”公告思路实现 首页js关闭“新”公告思路实现 管理员“已阅读”js逻辑 首页js显示“新”邮件思路实现 首页js关闭“新”邮件思路实现 写前小叙 今儿凌晨,我又是一个人…

【Python】福利彩票复式模拟选号程序

【效果】 【注意】 逻辑是用Random模拟10000次复试彩票选号,然后给出最大可能性一组。但是模拟终究是模拟,和现实彩票结果没有任何联系,下载下来玩就是了,没人能保证模拟出中奖号码,不要投机,不要投机! 【修改】 代码很简单,如果想改成不是复式的,自行修改即可。 如…

linux学习实操计划0103-安装软件

本系列内容全部给基于Ubuntu操作系统。 系统版本:#32~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 18 10:40:13 UTC 1 安装deb格式软件 Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。 处理这些包的经典程序是…

【IntelliJ IDEA】切换jdk版本配置

需求描述 idea 2020.3.1 原来idea使用的是jdk8的版本,想换成jdk7的版本,该怎么配置呢?配置哪些地方呢? 解决方法 local1 先在Project Structure中,添加上刚安装的jdk7(它的安装目录) local…

数据结构——线性表之顺序表

目录 一.线性表 二.顺序表实现 2.1 概念及结构 2.2 动态顺序表 2.2.1 初始化与销毁函数 2.2.2 打印函数 2.2.3 尾插函数 2.2.4 尾删函数 2.2.5 扩容函数 2.2.6 头插函数 2.2.7 头删函数 2.2.8 任意位置插入函数 2.2.9 查找函数 2.2.10 任意位置删除函数 2.2.11 修…

2023年9月中国数据库排行榜:阿里叱咤云端登榜眼,华为中兴厚积薄发显峥嵘

鸿鹄展翅凌云志,骏马扬蹄踏雪心。 2023年9月的 墨天轮中国数据库流行度排行 火热出炉,本月共有287个数据库参与排名。本月排行榜前十中,OceanBase 连续10个月稳居榜首,头部产品得分差距日益缩小,阿里华为两大云厂商持续…

react使用内联css样式的注意点

react使用内联css样式: 就是直接在元素标签的style属性中写css样式,但是这里有三个注意点: 1. style等号后面必须接双大括号也就是 style{{ xx: xx }} 这样 2. css的属性必须写成驼峰型,不能有中横线,比如marginRight, 而不能说margin-righ…

Axure原型设计累加器计时器设计效果(职业院校技能大赛物联网技术应用项目原型设计题目)

目录 前言 一、本题实现效果 二、操作步骤 1.新建文件 2.界面设计 2.1文本框 2.2 按钮 2.3设计界面完成 3.交互 3.1启动交互设置 3.2 分别设置三个属性 3.2.1 设置值为“0” 3.2.2 文字于文本框 3.2.3 获取焦点时 3.3 停止按钮的交互动作 3.3.1 设置变量值 3.4 重…

CAC2023交流群(将持续更新至会议结束)

为青年才俊们提供一个信息交换平台 看到大家对中国自动化大会非常感兴趣并踊跃投稿,虽然我和组委会没有什么直接联系,也是一个菜菜。只是把之前走过的坑写了出来,当然,这个会议你会投了,其它会议也是大同小异。 想必…

java刷题知识点

文章目录 牛客网volatile字符串数组和字符数组管道解决hash冲突Java的体系结构包含下面有关servlet的层级结构和常用的类,说法正确的有?关于ThreadLocal类 以下说法正确的是off-heap是指那种内存集合和map的的继承实现关系抽象类和接口的区别节点流与处理流语句&am…

Solidity 小白教程:21. 调用其他合约

Solidity 小白教程:21. 调用其他合约 调用已部署合约 开发者写智能合约来调用其他合约,这让以太坊网络上的程序可以复用,从而建立繁荣的生态。很多web3项目依赖于调用其他合约,比如收益农场(yield farming&#xff0…

SAP FI 中的重要报告

目录 总账科目表 GL总账清单 GL总账余额 总账科目总计和余额 AR客户主数据列表 AR 客户余额 AR客户订单项 AR客户未清项目 AR客户付款记录 AR供应商主数据 AR供应商余额 AR供应商订单额 AR供应商未清项目 总账科目表 在 SAP 命令字段中输入交易代码 S_ALR_870123…

数据分享|R语言生态学种群空间点格局分析:聚类泊松点过程对植物、蚂蚁巢穴分布数据可视化...

全文链接 :https://tecdat.cn/?p33676 点模式分析(点格局分析)是一组用于分析空间点数据的技术。在生态学中,这种类型的分析可能在客户的几个情境下出现,但对数据生成方式做出了特定的假设,因此让我们首先看看哪些生态…