位置: 编程技术 - 正文

Mysql中LAST_INSERT_ID()的函数使用详解

编辑:rootadmin

推荐整理分享Mysql中LAST_INSERT_ID()的函数使用详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表。研究了一番决定使用Mysql提供了一个LAST_INSERT_ID()的函数。

简单说来,就是这个函数将返回插入的那条记录在表中自增的那个字段的值,一般我们都给那个自增字段命名为ID。这样就可以返回刚插入的记录的ID值了。

一个简单的例子:

这个函数是基于connection的,也就是不会被其他客户端的connection影响到,所以结果是准确的。如果使用select max(id) from table,在高密度的插入请求下,是有可能出问题的,返回错误值

LAST_INSERT_ID说明

从名字可以看出,LAST_INSERT_ID即为最后插入的ID值,根据MySQL的官方手册说明,它有2种使用方法

一是不带参数:LAST_INSERT_ID(),这种方法和AUTO_INCREMENT属性一起使用,当往带有‘AUTO_INCREMENT'属性字段的表中新增记录时,LAST_INSERT_ID()即返回该字段的值,大家可试下(我已经验证过);二是带有表达式:如上面介绍的LAST_INSERT_ID(value+1),它返回的是表达式的值,即‘value+1';##################################LAST_INSERT_ID() 自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值。

MySQL的LAST_INSERT_ID的注意事项:

第一、查询和插入所使用的Connection对象必须是同一个才可以,否则返回值是不可预料的。

mysql> SELECT LAST_INSERT_ID();

->

使用这函数向一个给定Connection对象返回的值是该Connection对象产生对影响AUTO_INCREMENT列的最新语句第一个AUTO_INCREMENT值的。这个值不能被其它Connection对象的影响,即它们产生它们自己的AUTO_INCREMENT值。

第二、LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id值。

Mysql中LAST_INSERT_ID()的函数使用详解

第三、 假如你使用一条INSERT语句插入多个行, LAST_INSERT_ID() 只返回插入的第一行数据时产生的值。其原因是这使依靠其它服务器复制同样的 INSERT语句变得简单。

mysql> INSERT INTO t VALUES

-> (NULL, ‘Mary'), (NULL, ‘Jane'), (NULL, ‘Lisa');

mysql> SELECT * FROM t;

| id | name |

+—-+——+

| 1 | Bob |

| 2 | Mary |

| 3 | Jane |

| 4 | Lisa |

mysql> SELECT LAST_INSERT_ID();  //这就是我要说明的关键问题。

| LAST_INSERT_ID() |

| 2 |

虽然将3 个新行插入 t, 对这些行的第一行产生的 ID 为 2, 这也是 LAST_INSERT_ID()返回的值。

以上所述就是本文的全部内容了,希望大家能够喜欢。

请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

MySQL外键使用详解 最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键。(1)只有InnoDB类型的表才可以使用外

MySQL分支选择参考:Percona还是MariaDB 在MySQL被Oracle收购以后,越来越多的人对于MySQL的前景表示了担忧,对于开源的MySQL,或多或少对于Oracle自家的数据库产品产生冲击,这个开源免费的MySQL

开源MySQL高效数据仓库解决方案:Infobright详细介绍 Infobright是一款基于独特的专利知识网格技术的列式数据库。Infobright是开源的MySQL数据仓库解决方案,引入了列存储方案,高强度的数据压缩,优化的统

标签: Mysql中LAST_INSERT_ID()的函数使用详解

本文链接地址:https://www.jiuchutong.com/biancheng/347276.html 转载请保留说明!

上一篇:MySql insert插入操作的3个小技巧分享

下一篇:MySQL外键使用详解(mysql外键怎么写)

  • 环保税的纳税义务人是施工方还是建设方安徽
  • 企业的免税收入用于支出所形成的费用
  • 增值税加计扣除怎么做账
  • 子公司之间股权转让
  • 主营业务收入科目按其所反映的经济内容不同
  • 管理费用中的税金包括哪些
  • 无需外汇局审批的账户
  • 结转上月库存商品余额会计分录
  • 海关进口发票可以退税吗
  • 工会经费计入成本费用
  • 所得税在什么情况下扣除
  • 个税申报初始化密码
  • 实收资本能是现金流出吗
  • 企业出借资金获利怎么算
  • 金融资产的划分标准以及相关的处理怎么做
  • 个税专项扣除如何迁移
  • 金税三期个人所得税税率
  • 有限公司跟股份有限公司的区别
  • 建筑行业机械租赁费计入什么科目
  • 购买材料产生的运杂费怎么做分录
  • 贷款利息进项税额转出
  • 进项税额转出转多了
  • 异地预缴企业所得税几个点
  • 认证的增值税发票怎么做成账本格式
  • 学校提供场地开发方案
  • 2018税务金四发展预测会有哪些?
  • 变更办税人需要原办税人去吗
  • 建筑安装业跨省经营管理税务通知
  • 价值多少可以确认收入
  • 固定资产改造计入什么科目
  • 销售净利率计算公式是什么
  • 是否跨期
  • 代开普通发票要什么材料?
  • 补缴城镇土地使用税会计分录怎么做
  • 企业没有土地证
  • deepin20.1怎么样
  • 交上年企业所得税怎么做会计分录
  • 实收资本是认缴出资吗
  • 搭建rtmp
  • 国家减免税款怎么申请
  • 网络和共享中心在哪里打开
  • 蓝牙耳机连电脑
  • 用约当产量法怎么计算约当总产量
  • 私车公用维修费属于个人承担吗
  • 在php中,字符串有哪些表示形式
  • Discuz!X中SESSION机制实例详解
  • 可抵扣增值税有哪些
  • 温哥华瀑布
  • 圣托里尼岛游玩攻略
  • 销售自己使用过的固定资产
  • ps2021和cs6有什么区别
  • 关于专利技术转让的说法
  • 增值税申报表填错不影响税额
  • 个人所得税法实施细则2023
  • 购置固定资产进项税率
  • 开票一定要确认发票吗
  • phpcms怎么用
  • 归属净利润和扣非净利润看哪一个
  • 代销手续费怎么做账
  • 采购方退货的会计分录
  • 商业医疗保险的缺点
  • 资本公积和盈余公积的用途
  • 期初与年初有什么区别
  • 劳务报酬如何记账
  • 电脑属于固定资产哪类
  • 账户与会计科目有什么联系与区别?
  • mysql死锁的例子
  • sqlserver分页查询sql
  • xp无法正常启动怎么办
  • linux系统怎样安装
  • win7电脑弹窗多怎么解决
  • jquery实战
  • srslte源码分析
  • linux shell 输出到文件
  • 老司机指的是
  • 汽车车船税怎么交
  • 一般纳税人提供公共交通运输服务免征增值税
  • 核定征收一般纳税人
  • 长途汽车车次号
  • 福建莆田社保局在哪里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设