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());
相关推荐
zzb158014 小时前
RAG from Scratch-优化-query
java·数据库·人工智能·后端·spring·mybatis
一只鹿鹿鹿15 小时前
信息安全等级保护安全建设防护解决方案(总体资料)
运维·开发语言·数据库·面试·职场和发展
堕27415 小时前
MySQL数据库《基础篇--数据库索引(2)》
数据库·mysql
wei_shuo15 小时前
数据库优化器进化论:金仓如何用智能下推把查询时间从秒级打到毫秒级
数据库·kingbase·金仓
71-315 小时前
MySQL的安装和卸载组件
笔记·学习·mysql
雷工笔记15 小时前
Navicat Premium 17 软件安装记录
数据库
wenlonglanying15 小时前
Ubuntu 系统下安装 Nginx
数据库·nginx·ubuntu
数据库小组16 小时前
10 分钟搞定!Docker 一键部署 NineData 社区版
数据库·docker·容器·database·数据库管理工具·ninedata·迁移工具
爬山算法16 小时前
MongoDB(38)如何使用聚合进行投影?
数据库·mongodb
l1t16 小时前
Deep Seek总结的APSW 和 SQLite 的关系
数据库·sqlite