Mysql 获取刚刚插入的行

2024-03-12

所以我正在设计一个函数,将一行插入 MySQL 数据库。该表有一个启用了自动增量的主键。所以我不插入该列的值。但PK是整个表中唯一唯一的列。如何获取刚刚插入的行?

如果该函数在流量较小的情况下我看不到问题,但是当其负载越来越重时,我可以看到一个潜在的错误:假设我插入了一行并且数据库的 AI 值为 1,然后在获取函数开始之前为了请求“最新插入的行”,将插入 AI 值为 2 的另一行。现在,如果运行 Insert 1 的获取函数,将获取第 2 行。我知道时间间隔需要非常小才能允许这个错误实际存在,但是有没有更好的方法来获取正确的行,同时维护表仅将 PK 作为唯一列? (我不想实现额外的校验和列,尽管我认为这是一个潜在的解决方案。)


这不太符合逻辑,但你可以:

insert into `table1` (`column1`,`column2`,`column3`) VALUES ("value1","value2","value3");
select * from `table1` where `PK`=LAST_INSERT_ID();

相反你应该只SELECT LAST_INSERT_ID();正如尤尔根·d 建议的那样并重复使用其他数据

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

Mysql 获取刚刚插入的行 的相关文章

随机推荐

  • HTML+CSS 中的不确定进度条

    我想创建一个不确定的HTML CSS进度条所以它看起来像 Vista 上的那个 source microsoft com http i msdn microsoft com dynimg IC121865 png 我想 水平调整进度条宽度
  • 在同一终端中同时运行多个命令

    I want to run a few commands each of which doesn t quit until Ctrl C is pressed Is there something I can run to run all
  • 客户愤怒,与未知的 DLL 依赖项作斗争

    我是一位为客户开发 C Windows 应用程序的单人秀 在过去的几个月里 我们一直遇到同样的问题 即客户计算机上缺少 DLL 依赖项 尽管我尽了最大努力 但问题仍然存在 我们收到了愤怒的电子邮件 我的老板和我老板的老板对我很生气 顾客也不
  • 如何在 Swift 中将*正数*转换为数字数组

    我想转换一个positive数字到相应的数字列表中 数字也应该是整数 转换时 例如 1024 它应该返回 1 0 2 4 在 Swift 4 1 或更高版本中 let number 1024 let digits String number
  • 部署时使 Google Cloud Function 的 Firebase 缓存失效

    我最近使用 Cloud Functions 和 Firebase Hosting 实现了 SSR 当 JS 包构建时 它会收到一个缓存突发后缀 main 1 js 在我的函数内部 我有以下代码段用于缓存云函数的结果 res set Cach
  • winapi 中子窗口编辑控件上的 WS_TABSTOP

    在我的 WinAPI 应用程序中 我的子窗口中有一系列编辑控件 我希望用户能够通过按 Tab 键前进并按 Shift Tab 键返回来在它们之间移动 但我似乎不知道如何使用WS TABSTOP与子窗口 我想要发生的是 当用户单击 Tab 键
  • 将 HTML 元素的引用传递给自定义挂钩

    假设我有一个自定义挂钩 我将使用它来将单击事件侦听器添加到 HTML 元素中 我创建参考const buttonRef useRef null 因此第一次渲染时的值为 null ref 值仅在渲染方法的final 中分配 此时我的自定义钩子
  • 最低权限的身份服务器无法在 Azure 上正常工作

    我正在尝试实现一个遵循 OAUTH2 OIDC 协议的架构 为了做到这一点 我为客户端提供了 STS Identity Server v3 ASP NET WebApi 和 ASP NET MVC 应用程序 我的目标是将 STS 和 RES
  • 如何获取目录中的目录列表,如 list.files(),但改为“list.dirs()”

    我能够使用list files 获取给定目录中的文件列表 但如果我想获取目录列表 我该怎么做 它是否就在我面前作为一个选项list files 另外 我使用的是 Windows 所以如果答案是使用某些 Linux unix 命令 那对我来说
  • 将 Python SIGINT 重置为默认信号处理程序

    版本信息 操作系统 Windows 7 Python版本3 3 5 下面是我正在玩的一小段测试代码 目的是忽略CTRL C在执行某些代码时按下 之后CTRL C行为将会恢复 import signal import time try mar
  • 为什么 32 位内核可以运行 64 位二进制文​​件?

    在我的 OS X 机器上 内核是 32 位二进制文 件 但它可以运行 64 位二进制文 件 这是如何运作的 cristi diciu file a out a out Mach O 64 bit executable x86 64 cris
  • 如何为用户/连接设置一些上下文变量

    我目前使用 Firebird SQL 作为我的共享软件的数据库后端 还想支持 PG 9 3 在 FB 中 我使用 set get context 来执行此操作 设置上下文 http www firebirdsql org refdocs l
  • 如何在 swift 中下载 Pdf 文件并在文件管理器中查找

    我已经使用下面的代码下载了 pdf 我能够在应用程序数据容器中找到该文件 但从应用程序数据容器中我的设备需要 Mac x 代码或 iTunes 等 我可以给出文档的不同路径或在 iPhone 文件中查找 pdf 的其他位置吗 我可以选择使用
  • vba 是在相等比较中被视为零的空值

    我试图跳过值为零或为空的记录 截至目前 我有以下代码可以明确检查两者 但我觉得第二次检查是多余的 但我想确认我是对的 以便我可以删除 IF 的第二部分 IF CellInValue RowInCrnt ColInCrnt 0 Or Cell
  • git 分支切换 Laravel 时发生 ReflectionException 类不存在

    因此 在决定创建此问题之前 我阅读了大约 100 篇有关此问题的帖子 这个问题实际上非常具体 并且 100 可重现 我创建了一个 git 分支 我们可以称之为storeUpdate 在这个分支中我创建了一个名为 app Http Contr
  • C++ 中的成员函数指针 for_each

    我正在为一个学校项目开发一个 C 小型虚拟机 它应该像 dc 命令一样工作 由输入输出元件 芯片组 CPU 和 RAM 组成 我目前正在研究芯片组 其中我实现了一个小的解析类 以便能够从标准输入或文件中获取一些 Asm 指令 然后将这些指令
  • 样式方面的
    或填充/边距元素

    现在有了 HTML5 和 CSS3 就是使用 br 当可以使用边距 填充时标签会皱起眉头 编辑 这是关于我的用例的 div 元素之间的间距 但也欢迎一般最佳实践建议 实际上 关于它的使用有相当明确的规则 可以追溯到HTML 2 0 http
  • 在不知道列名的情况下重命名单个 pandas DataFrame 列

    我知道我可以使用以下方法重命名单个 pandas DataFrame 列 drugInfo rename columns col 1 col 1 new name inplace True 但我想重命名一个列根据其索引 不知道它的名字 虽然
  • 如何更改TFS中的System.State字段?

    我有需要更改的要求System State现场workitem当其他字段发生变化时 我知道 TFS 工作流程是基于状态的 即根据状态您可以更改其他字段的值 但如何走另一条路呢 Mayur 我认为您无法通过使用内置工作项工作流程来实现这一目标
  • Mysql 获取刚刚插入的行

    所以我正在设计一个函数 将一行插入 MySQL 数据库 该表有一个启用了自动增量的主键 所以我不插入该列的值 但PK是整个表中唯一唯一的列 如何获取刚刚插入的行 如果该函数在流量较小的情况下我看不到问题 但是当其负载越来越重时 我可以看到一