MySQL LAST_INSERT_ID() 与多记录 INSERT 语句一起使用

2023-11-24

如果我使用执行单个记录插入的循环插入多个记录,则返回的最后一个插入 ID 正如预期的那样,是最后一个。但是如果我执行多条记录插入语句:

INSERT INTO people (name,age)
VALUES ('William',25), ('Bart',15), ('Mary',12);

假设上面的三条记录是插入表中的第一条记录。在插入语句之后,我期望最后一个插入 id 返回 3,但它返回 1。相关语句的第一个插入 id。

有人可以确认这是否是正常行为LAST_INSERT_ID()在多记录 INSERT 语句的上下文中。所以我可以基于它来编写我的代码。


是的。这种行为的last_insert_id() is 记录在 MySQL 文档中:

重要的
如果您使用单个插入多行INSERT陈述,LAST_INSERT_ID()仅返回为第一个插入行生成的值。这样做的原因是为了可以轻松地重现相同的内容INSERT针对其他服务器的声明。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL LAST_INSERT_ID() 与多记录 INSERT 语句一起使用 的相关文章

  • 如何合并不同 MySQL 列中的日期和时间以与完整的 DateTime 进行比较?

    Column d是日期 列t是时间 列v例如 是 INT 假设我需要 2012 年 2 月 1 日 15 00 及之后记录的所有值 如果我写 SELECT FROM mytable WHERE d gt 2012 02 01 AND t g
  • Mysql - 如何搜索26条以字母开头的记录?

    基本上 我正在尝试创建一个查询 该查询可以根据英语字母表中的字母 26 个字母 从表中检索 26 个单词 所以 苹果 香蕉 椰子 等等 我一直在使用 like a 所以 SELECT from word WHERE word name li
  • MySQL - 将字段的默认值设置为字符串连接函数

    我有一个看起来有点像这个的表 actor forename surname stage name 我想将 stage name 更新为默认值 forename surname So that insert into actors foren
  • 如何限制 SQLite / MySQL 中的列值

    我想限制表中的列值 例如 列值只能是car or bike or van 我的问题是如何在 SQL 中实现这一点 在数据库端执行此操作是一个好主意还是应该让应用程序限制输入 我还打算在将来添加或删除更多值 例如 truck 我使用的数据库类
  • 高级 MySQL:查找民意调查响应之间的相关性

    我有四个 MySQL 表 users 身份证号 姓名 polls ID 文本 options id poll id 文本 回应 id poll id 选项 id 用户 id 给定一个特定的民意调查和一个特定的选项 我想生成一个表格 显示其他
  • 如何在MySQL查询结果中显示序号

    我有一些简单的查询 SELECT foo bar FROM table 我想你现在的结果是什么样的 我想要做的是根据查询结果中出现的数据数量来显示一些序列号 就像AUTO INCREMENT 这并不意味着我想出示身份证 我想要的结果是这样的
  • 为 Codeigniter 中的 foreach() 提供的参数无效

    我收到错误消息 我的视图中 foreach 的参数无效 我想显示 mysql 表中的所有条目 但我不断收到错误消息 我是 Codeigniter 的新手 无法真正弄清楚如何解决这个问题 代码如下 我的模型 display branch ph
  • Mysql 中的 MD5 和 Salt

    如何 解密 各种电商存储的密码添加 盐 我不是密码专家 所以 在过去 我使用过类似的东西 SELECT FROM mytable WHERE email email AND passwd MD5 pwd MySql MD5 函数只接受一个参
  • MySQL 多索引与多列索引进行搜索

    在我正在编写的软件中 它能够搜索给定的表以获取信息 搜索表单有 5 个字段 当然所有字段都对应于表中的不同列 但所有字段都是可选的 我的问题是关于多列索引是否有效以及为其构建查询的正确方法 如果我有一个跨 5 列的索引 并且我构建了一个查询
  • 从mysql数据库读取pdf文件

    我正在使用这个例子http www php mysql tutorial com wikis mysql tutorials uploading files to mysql database aspx http www php mysql
  • 为什么java字符串在MYSQL中不保存为UTF-8?

    message new String round id getBytes UTF 8 conn DriverManager getConnection jdbc mysql host db useUnicode true character
  • MySQL 无法使用 PHP 连接到本地主机上的服务器

    我正在使用 XAMPP 1 7 2 可以通过 cmd 和 SQLYog 连接到 MySQL 但不能以编程方式连接 这段 PHP 代码 conn mysql connect localhost root if conn die Could n
  • mysql utf8_general_ci 区分大小写

    我有一个 mysql 数据库 我使用 utf8 general ci 不区分大小写 在我的表中 我有一些列 例如 ID 和区分大小写的数据 例如 iSZ6fX 或 AscSc2 为了区分大写和小写 最好只在这些列上设置 utf8 bin 如
  • 我不小心锁定了 MySQL 的 root

    我在 OS X 上使用 MySQL 并使用删除了所有 root 用户DROP USER 然后我又添加了其中一些并做了GRANT ALL on to root localhost 然后在验证确实是的之后注销 我可以登录并执行一些特权操作 不幸
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • WHERE 子句或 ON 子句中的 INNER JOIN 条件?

    我今天输错了一个查询 但它仍然有效并给出了预期的结果 我的意思是运行这个查询 SELECT e id FROM employees e JOIN users u ON u email e email WHERE u id 139840 但我
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml

随机推荐

  • 如何从 preg_split 结果中删除空数组? [复制]

    这个问题在这里已经有答案了 举个例子 我有大量的正则表达式 就像我写的一样简单 php gt var dump preg split reg s reg a zA Z array 3 0 gt string 0 1 gt string 13
  • 裤子包括 OS X 特定的 Python 轮子

    TLDR Pants 获取 OS X 特定的轮子 因为我正在 Mac 上开发 我怎样才能避免这种情况 或者指定我将部署到 Ubuntu 完整故事 尝试用 Pants 打包 Python 应用程序 到目前为止进展顺利 但遇到了一个困扰我一段时
  • 以编程方式设置或查看“高级 Wifi”设置

    我需要一种以编程方式打开 高级 wifi 设置的方法 以让用户更改某些设置 或者最好以编程方式更改这些高级无线设置 到目前为止 我只能通过 startActivity new Intent Settings ACTION WIFI SETT
  • 什么样的类型定义在本地环境中是合法的?

    在伊莎贝尔的NEWS文件 我发现 命令 typedef 现在可以在本地理论上下文中工作 无需 引入对参数或假设的依赖 这不是 可以在 Isabelle Pure HOL 中实现 请注意 逻辑环境可能 包含本地 typedef 的多种解释 具
  • Kafka Connect 接收器任务忽略容差限制

    我尝试忽略接收器连接器中的错误消息errors tolerance all选项 完整的连接器配置 name crm data sink pandora config connector class io confluent connect
  • Linux下C语言读写串口

    我试图使用 FTDI 通过 USB 端口发送 接收数据 所以我需要使用 C C 处理串行通信 我正在尝试Linux 乌班图 基本上 我连接到一个正在侦听传入命令的设备 我需要发送这些命令并读取设备的响应 命令和响应都是ASCII 字符 使用
  • C++ 中的设置/获取方法

    Java 程序员和 API 似乎更喜欢显式的 set get 方法 然而我的印象是 C 社区不赞成这种做法 如果是这样 是否有特殊原因 除了更多行代码之外 为什么会这样 另一方面 为什么Java社区选择使用方法而不是直接访问 谢谢 理想情况
  • 使用 Rust 稳定通道和夜间通道并行编译代码有多困难?

    Cargo 创建的默认文件树允许并行编译发布和调试版本 因为它们位于自己的目录中 target release and target debug 分别 允许并行编译有多困难stable nightly 编译器 例如使用目录 target d
  • 在 R 中合并两个列表

    我有两个清单 first list a 1 b 2 c 3 second list a 2 b 3 c 4 我想合并这两个列表 所以最终产品是 a 1 1 2 b 1 2 3 c 1 3 4 有一个简单的函数可以做到这一点吗 如果列表始终具
  • 更新部分主键Entity Framework 4.0

    我有一个带有复合主键的表 3 列 UTP ID ITEMId UTS ID CategoryID USS ID SubCategoryID 例如 当我尝试使用 EF 4 更改 SubCategory 时 出现以下错误 utl USS ID
  • 写入帧缓冲区

    我使用的是带有内置图形加速器 GMA HD 的 i5 内核 在 RHEL 6 0 操作系统上运行 我需要测试显卡驱动程序的图形加速能力 我发现我的电脑上是i915 我使用以下代码 我从互联网上获得并进行了一些修改 来写入帧缓冲区 inclu
  • 多行搜索替换为 Perl

    我知道这类问题以前已经被问过很多次了 我再次来到这里的原因是我觉得我错过了一些简单而基本的东西 是否有可能使这种搜索替换例程变得更好 例如 无需打开同一文件两次 也欢迎与速度相关的建议 请注意 这适用于多行匹配并替换多行字符串 bin pe
  • 如何将 2D Eigen::Tensor 更改为 Eigen::Matrix

    看起来很简单 我本以为某种类型的转换是可能的 但我似乎找不到任何相关文档 虽然我在应用程序中找到了避免使用 Eigen Matrix 类的方法 但 TensorFlow 仅适用于 Eigen Tensor 而我使用的另一个库仅具有直接使用
  • Python将字符串拆分为多个字符串[重复]

    这个问题在这里已经有答案了 可能的重复 在Python中将字符串分割成列表 我有一个带有很多部分字符串的字符串 gt gt gt s str1 str2 str3 str4 现在我有一个类似以下的功能 gt gt gt def f args
  • 迁移到 rbenv 会破坏乘客 (nginx)

    我在生产服务器上从 RVM 迁移到 rbenv 我使用 rvm implode 卸载了 rvm 并安装了 rbenv ruby 1 9 2 rails passenger 和 nginx module 除了按如下方式更改 Passenger
  • 查找 numpy 数组中最接近的值

    我如何找到最接近的值在 numpy 数组中 例子 np find nearest array value import numpy as np def find nearest array value array np asarray ar
  • 如何缩短 ggplot 中的 x 轴标签文本?

    我正在 ggplot 中绘制一个图 其中 x 轴标签包含不同蛋白质的名称 但我遇到了麻烦 因为其中一些名称太长 并且标签变得太大 以至于很难看到图 有什么方法可以减少 x 轴标签中的字符数 而不是 打印 更大的图表 这是一个显示我的问题的示
  • Bash - 计算输入数字的平均值

    需要有关 Linux Bash 脚本的帮助 本质上 运行脚本时会要求用户提供三组数字 然后计算输入的数字并得出平均值 bin bash echo Enter a number read a while a do echo Enter a s
  • 如何解决 Bash 命令替换中的错误“bash: !d': event not found”[重复]

    这个问题在这里已经有答案了 我正在尝试解析 VNC 服务器启动事件的输出 但在命令替换中使用 sed 进行解析时遇到了问题 具体地 远程VNC服务器的启动方式如下 address1 email protected VNCServerResp
  • MySQL LAST_INSERT_ID() 与多记录 INSERT 语句一起使用

    如果我使用执行单个记录插入的循环插入多个记录 则返回的最后一个插入 ID 正如预期的那样 是最后一个 但是如果我执行多条记录插入语句 INSERT INTO people name age VALUES William 25 Bart 15