Mysql之LAST_INSERT_ID
说明
【Mysql之LAST_INSERT_ID】每个连接都对应一个ID变量,每个连接的操作只影响本连接的变量。在一些场景中可以直接查询出ID变量的值,而不是去查询真实数据库的表。
- 更新ID变量
- 向主键自增的表插入一条数据
update sequence set id = LAST_INSERT_ID(id + 1);
- 查询ID变量
通过SELECT LAST_INSERT_ID()
查询。
一般通过下面用法返回刚刚插入数据生成的自增主键。
insert into
item_table ( )
values(#itemTitle#, #itemPrice#)SELECT LAST_INSERT_ID() AS value
应用举例之 - tddl-sequence 乐观锁实现方式 该方式会发生不断的自旋,从而影响吞吐量。但是,下面的三个sql没必要在一个事务中。
- 先从数据库查询当前的最大 ID
select value as old_value form sequence_table where name = 'mySequence'
- 根据最大 ID 算出更新后的ID
long newValue = https://www.it610.com/article/oldValue + 1;
使用乐观锁锁更新数据库 ID,如果乐观锁失败则从第一步重新开始 update sequence_table set value = https://www.it610.com/article/new_value where name ='mySequence' and value = https://www.it610.com/article/old_value
- 直接更新 ID 并将更新后的值记录到 last_insert_id 中
update sequence_table set value = https://www.it610.com/article/last_insert_id( value + 1 ) where name ='mySequence'
SELECT LAST_INSERT_ID()
推荐阅读
- 鬼谷子之雄辩八术
- IntelliJ|IntelliJ IDEA安装字体之“JetBrains Mono”
- 多年锤炼,迈向Kata|多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术
- 哈啰Kubernetes基于水位的自定义调度器落地之路
- 2018.12.12感恩之旅第273天
- 黑科技|从“跑分神器”到数据平台,鲁大师开启演进之路
- PMP之敏捷图表之产品地图VS产品路线图
- elasticsearch api 调用
- 一篇读懂 Linux 用户管理
- Java基础之细说枚举