sql手动自增id

有时候在运维处理数据的时候,需要给某张表插入新的记录,那么需要知道最新插入数据的id,并在最新id的基础上加上id增长步长获取新的id,这个过程往往需要现将max出来加1,再手动补充到sql语句中,很麻烦,而且数据多的时候容易出错。有什么方式可以解决这弊端,其实方法很简单,只需引入一个临时变量即可轻松解决。

1、查询表最大id

sql 复制代码
SET @max_id = (SELECT  MAX(id)  FROM  t_change_record) ;

2、赋值新的id

有时候表结构定义的id使用的是char,那么需要现将字符转成数字再做加法

sql 复制代码
SET @new_id = ( SELECT CONVERT(@max_id,SIGNED)) +1;

3、插入数据

sql 复制代码
INSERT INTO `t_change_record` (`id`, `order_id`, `change_type`, `change_time`, `remarks`, `operator_name`, `create_time`, `update_time`) VALUES (  @new_id, 'xxx', 6,  now(), '核销', 'admin',now(), now());
相关推荐
浪客灿心19 小时前
MySQL的内置函数和复合查询
mysql
shuair19 小时前
redis红锁Redlock
数据库·redis·bootstrap
小新同学^O^19 小时前
简单学习 --> 限流和熔断
数据库·python·学习
专注API从业者19 小时前
用 Open Claw + 淘宝商品接口,快速实现电商商品监控与智能选品(附完整代码)
大数据·前端·数据结构·数据库
TDengine (老段)20 小时前
TDengine 虚拟表实现原理
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
吃好睡好便好20 小时前
用if…elseif…end语句输出成绩等级
开发语言·前端·javascript·数据库·学习·matlab·信息可视化
努力努力再努力wz20 小时前
【Redis入门系列】:Redis 内部编码机制与 String 深度解析:SDS 底层实现、三种编码与核心命令详解
c语言·开发语言·数据结构·数据库·c++·redis·缓存
罗超驿20 小时前
21.jdbc 学习笔记:从原理到实践的全流程梳理
java·数据库·mysql·面试
楠枬20 小时前
Redis 分布式锁
数据库·redis·分布式
尚雷558020 小时前
Oracle 18C 物理 DataGuard 搭建部署完整文档(适合开发测试)
数据库·oracle·dataguard