insert 语句_SQL语句insert插入的返回值到底是什么?

站长简介:站长其人,计算机爱好者,所写内容甚是简单,且毛刺众多,被好事者称为装逼站长。业内正统多老实,竖子闲心取诨名!只因从业久矣,日渐懒怠,现以玩乐为主,偶有撩猫逗狗,以致鸡犬不宁,时而内心惶惶。昨夜挑灯读码,今朝群里对骂,虽口舌爽快一时,然终归不过是青蛙斗蝌蚪,亦是无趣。技术难题犹如小学奥数,人所不会是因为学了但不会,站长不会是因为不想学而不懂。纵横IT十多年,技术使我生白发,我把技术来忽悠,故此以来,站长文风简单,多以点到为至,权当茶余饭后消遣而已。

086c9a828a7f4f26b91babde22b1a0c3.png

插入属于数据库的基本操作,但是很多人对下面两个问题有点疑惑:

(1)如何判断是否插入成功呢?是根据返回值吗?

(2)insert什么时候返回0?

其实,上面这两个问题的本质就是对“insert插入的返回值”不清楚。话说,我也没有搞清楚,也许之前搞明白了,后来忘记了,最近通过走读MyBatis的源码又加深了印象,特总结了下来。

(1)insert插入的返回值是新增数据的ID。当然,前提是数据库支持自增的ID主键。

(2)如果没有定义自增主键,那么将返回一个特殊的数,至于这个数是什么,在MyBatis里面是这样定义的:Integer.MIN_VALUE + 1001

至此,上面的两个问题可以得到合理的解决:

(1)可以根据返回值来判断是否插入成功,返回结果不为 Integer.MIN_VALUE + 1001的,都属于新增数据的ID,自然可以判断依据插入成功。

(2)此问题本身就是问题,不应该这么发问。insert返回值是新增数据的ID,通常来说,MySQL AUTO_INCREMENT会从1开始编号,也就意味着什么时候也不会返回0。

长按下图,纵览过往发文记录

8be0a4faef64e5f47105aeb6801ad316.png

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值