如何在 mysql 中使用 UPDATE 自动声明行或资源

2023-12-25

我有一个资源表(比如说汽车),我想以原子方式声明它。然后我想要有关我刚刚声明的资源的信息。

如果每个用户只能使用一种资源,我可以采取以下技巧:

UPDATE cars SET user = 'bob' WHERE user IS NULL LIMIT 1
SELECT * FROM cars WHERE user = 'bob'

这样,我可以原子地声明资源,然后我可以看到我刚刚声明了哪一行。

当“鲍勃”可以认领多辆车时,这不起作用。我意识到我可以得到鲍勃已经认领的汽车清单,认领另一辆,然后SELECT再次查看发生了什么变化,但这感觉很黑客。

我想知道的是,是否有某种方法可以查看我刚刚用上次更新更新了哪些行?

如果做不到这一点,是否还有其他技巧可以自动声明一行?我真的想避免使用SERIALIZABLE隔离级别。如果我做这样的事情:

1 SELECT id FROM cars WHERE user IS NULL
2 <here, my PHP or whatever picks a car id>
3 UPDATE cars SET user = 'bob' WHERE id = <the one i picked>

would REPEATABLE READ这里就足够了吗?换句话说,我能否保证其他一些事务不会声明我的软件在第 2 步中选择的行?


UPDATE cars SET user = 'bob' WHERE id = 123 AND user IS NULL;

更新查询返回更改的行数。如果没有更新,您就知道该车已被其他人认领。

或者,您可以使用 SELECT ... FOR UPDATE。

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

如何在 mysql 中使用 UPDATE 自动声明行或资源 的相关文章

  • Rails 3、mysql/mysql2 将某些检索到的字符串误解为 ASCII-8BIT

    这个问题最初是常见的 字符编码不兼容 ASCII 8BIT 和 UTF 8 问题 但事实是not我在问什么 相反 我发现发生此问题是因为数据库的某些字段在检索时被标记为 ASCII 8BIT 而大多数字段正确显示为 UTF 8 例如 在包含
  • 私人消息系统。列出每个对话的最后一条消息

    可以说这是数据库结构 SELECT FROM pms where id to 1 or id from 1 这将返回他已接收或发送的所有消息 那么我如何检索最后一条消息each用户1可能进行的对话 PD 当两个用户之间存在一条或多条消息时
  • Java - 如何批量插入和更新数据库

    我想在一个PreparedStatement 中批量处理多种类型的数据库调用 这可能吗 有没有办法做类似的事情 PreparedStatement pstmt connection prepareStatement 哪里的 可以是INSER
  • 如何连接mysql表

    我有一张这样的旧桌子 user gt id name address comments 现在我必须创建一个 别名 表 以允许某些用户出于某种原因拥有别名 我创建了一个新表 user alias 如下所示 user alias gt name
  • 在 Laravel 上将百万行数据从一个数据库复制到另一个数据库

    使用 Laravel Eloquent 我从旧 Mysql 数据库的一张表中复制 700 万行数据 并将这些行放在新 Mysql 数据库的不同表中 问题是 执行此操作花费了几乎一天的时间 并且我需要对近 80M 行重新执行此操作 我一次使用
  • 无法导入 python-mysqldb

    我使用安装了 python mysqldb sudo apt get install python mysqldb 我尝试使用它但没有成功 以下命令在 Python 提示符下不起作用 import python mysqldb Or imp
  • MYSQL计算计数平均值

    我有一个简单的查询 我想要一个平均值 这就是现在的样子 我想知道每个 Opname OpnameID 的平均计数 SELECT Opname OpnameID count as behandelingen per opname FROM b
  • MySQL 将字符串视为整数

    我的申请有很大的问题 在开始之前我会红色这些主题Mysql 将 varchar 视为 int bug https stackoverflow com questions 17843329 mysql treating varchar as
  • 使用准备好的语句的 SQL ORDER BY

    我已经尝试了该代码的所有不同类型的变体 但无法使其工作 任何人都可以指出我正确的方向吗 if isset GET s And isset GET o if strip tags htmlspecialchars GET s s sortin
  • 我如何从mysql获取上周、本周和上个月的记录

    我在 Codeigniter 中以 strtotime 格式存储日期 一周从周日开始 this gt db gt where this gt weight create date lt curdate INTERVAL DAYOFWEEK
  • MySQL-创建索引需要多长时间?

    谁能告诉我如何在 MySQL 中添加键扩展 我的数据库有 500 000 000 行 trans 列有 i INT UNSIGNED j INT UNSIGNED nu DOUBLE A DOUBLE 我尝试为一列建立索引 例如 ALTER
  • 相当于 pandas 'transform' 的 SQL 是什么?

    假设您有以下 SQL 表 A B C 2 1 4 3 4 5 3 1 1 1 4 0 5 0 1 并且您想要添加 显示一个列 其中包含 A 列对于 B 列的每个不同值的平均值 或任何其他聚合函数 您想要保留所有列 所以结果会是这样的 A B
  • ImportError:没有使用 Python3 的名为 mysql.connector 的模块?

    尝试导入python mysql connector on Python 3 2 3并收到奇数堆栈 我怀疑我的 ubuntu 12 04 安装配置错误 vfi ubuntu usr share pyshared python3 Python
  • MySQL Workbench(版本 6.0.8)SSH 身份验证问题

    我正在尝试通过 SSH 通过计算机 Y 连接到主机 X 上的 MySQL 服务器 相同的设置 但 MySQL 工作台的版本较旧 适用于我的另一个机器 CentOS 6 3 但是 相同的设置在我的 CentOS 6 5 上不起作用 我尝试使用
  • MySQL:根据 ORDER BY 更新“排序”列

    完全编辑 我的查询有来自 2 个表的 2 列 文件名和排序顺序 完整的表格在这里完成http sqlfiddle com 9 8c0507 http sqlfiddle com 9 8c0507 Example SELECT FROM ta
  • OpenMP while 循环中的手动同步

    我最近开始使用 OpenMP 为大学的一个项目做一些 研究 我有一个矩形且均匀分布的网格 在该网格上我使用迭代方案求解偏微分方程 因此 我基本上有两个 for 循环 网格的 x 方向和 y 方向各一个 并由 while 循环包裹以进行迭代
  • 连接超时:Nodejs Google App Engine 到 Cloud MySql

    该代码非常基础 使用 mysql 的简单 Nodejs 应用程序 Error connect ETIMEDOUT当代码尝试连接到 Google App Engine 上的 Google Cloud MySql 服务器 第二代 时收到 但是应
  • MySQL:“SELECT 将检查超过 MAX_JOIN_SIZE 行”

    我正在使用 PHP 和 MySQL 在我的程序中 有一个涉及连接的选择查询 当我在本地主机上运行它时 它工作正常 但是当我将它上传到我的服务器上并尝试执行它时 它会生成以下错误 The SELECT would examine more t
  • django在服务器上同步数据库时出错

    我有一个完整运行的区域设置 django 应用程序 但我在迁移到 site5 服务器时遇到了麻烦 当我启动 django 时syncdb命令 我所有模型的表都已创建 但是然后 我猜当它创建关系表时 我收到以下错误 mysql excepti
  • TransactionScope 在某些机器上自动升级到 MSDTC?

    在我们的项目中 我们使用 TransactionScope 来确保我们的数据访问层在事务中执行其操作 我们的目标是not要求在我们的最终用户的计算机上启用 MSDTC 服务 问题是 在我们一半的开发人员机器上 我们可以在禁用 MSDTC 的

随机推荐

  • Scala 反序列化:找不到类

    我试图理解尝试序列化 反序列化一个非常简单的数据结构时发生的以下问题 case class SimpleClass i Int object SerializationDebug def main args Array String val
  • 如何减少 ScalaCheck 生成的测试用例数量?

    我正在尝试解决两个 ScalaCheck specs2 问题 有什么方法可以改变 ScalaCheck 生成的案例数量吗 如何生成包含一些 Unicode 字符的字符串 例如 我想生成大约 10 个包含字母数字和 Unicode 字符的随机
  • 为初学者建议使用 json 的 ASP.NET MVC 教程 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我已经开始学习 json 以在 asp net mvc 中开发高端 Web 应用程序 请建议一些教程或链接来理解它 以下内容应该会有所帮助
  • CGAL:2D 约束 Delaunay 三角剖分 - 将信息添加到约束

    在将点添加到三角器对象之前 可以将信息 如整数 附加到点上 我这样做是因为一方面我需要一个稍后使用的 int flag 来定义我的纹理坐标 另一方面我需要一个索引 以便我可以创建一个索引的 VBO http doc cgal org lat
  • 每次更改代码后都会出现 org.jboss.weld.exceptions.IllegalStateException: WELD-000227

    我正在使用 NetBeans 和 Glassfish 4 1 1 开发一个 Web 应用程序 我使用 JSF 和 CDI 来管理 Facelets 的支持 bean 由于在更改代码中的任何内容后不久 在通过浏览器 成功 部署和运行应用程序后
  • PhpStorm Xdebug:等待使用 ide key 的传入连接

    我正在运行 PHP 7 0 和 PhpStorm 2016 1 我安装了 x debug 这是我的配置 当从 PhpStorm 运行调试时 调试器选项卡显示以下错误消息 等待 ide 键 13136 的传入连接 ide 密钥每次都不同 请帮
  • MdSidenavLayout 内的粘性 MdToolbar

    我有一个 Angular 2 Material 应用程序 它使用
  • 如何有条件地设置属性名称

    我试图根据数据中的一列动态设置属性名称 但它不起作用 将路径箭头属性名称设置为marker end or marker start基于isReverse数据中的列 我创建了一个函数并在 attr 函数但它抛出脚本错误 这个要求基本上是根据i
  • 方法什么时候可以被 CLR 内联?

    我在应用程序中观察到很多 堆栈内省 代码 这些代码通常隐式依赖于它们的包含方法not被内联以确保其正确性 此类方法通常涉及调用 MethodBase GetCurrentMethod Assembly GetCallingAssembly
  • 使用 MATLAB 从 Matrix 中查找正值的数量 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个6x6双矩阵A 1 1 2 1 2 2 1 3 1 1 2 1 3 5 1 1 3 3 4 5 2 2 1 3 4 1 3 3 2
  • RPC-GWT 序列化/java.util.Date 编码

    我正在创建一个序列化 GWT 请求的脚本 但在编码日期值以符合 RPC GWT 标准时遇到问题 通过查看 HTTP 日志 我注意到日期值被转换为一些 7 个字符的字符串 但我无法识别这些模式使用的算法 有谁知道使用哪种算法来加密这些日期值
  • matplotlib 图例:如何指定字体粗细?

    指定 matplotlib 图例字体粗细的最佳方法是什么 我可以用 matplotlib rcParams update legend fontsize 12 设置字体大小 但是当我使用 matplotlib rcParams update
  • Java:util_USBUIRT.dll:找不到依赖库

    我想使用这个 jar 文件 http sourceforge net projects uirt j http sourceforge net projects uirt j 在个人项目中 目前 我一直在使用 Eclipse 并尝试导入该
  • 使用 opengrok 搜索历史记录

    我一直在使用 OPENGROK 来搜索我的 SVN 代码存储库 它需要存储库的签出版本来为其建立索引 当我在我的系统上签出版本时 我已经能够实现通过存储库进行搜索 当我尝试搜索存储库的历史记录时 我陷入了困境 我能做些什么 另外 如何更新索
  • Windows 7中uwsgi安装错误

    尝试根据安装uwsgi文档 http uwsgi docs readthedocs org en latest tutorials Django and nginx html我在 Windows 7 上收到以下错误 我应该怎么办 uwsgi
  • 无法在 JavaScript 中创建 Vue Router 实例

    下列的导游 https router vuejs org en essentials getting started html我到达了需要创建 Vue 实例的地步 这似乎有效 但是 我还需要在 Vue 的构造函数中提供一个 Vuew Rou
  • 每次按下灌木丛时按下都会生成草药

    我在 2D 游戏中从森林中的一些灌木丛中生成了一个香草集合 我的脚本具有克隆 Herbs 预制件的功能 但当我按下灌木丛时没有任何反应 这里有什么问题 Script using System Collections using System
  • 从另一个 data.frame 填充 data.frame 中的缺失值

    我有一个带有行和列名称的 N x M 数据框 DF1 其中许多值都是 NA 还有第二个数据框 DF2 1 x M 因此实际上可能是一个向量 其行名称与 DF1 相同 我想使用 DF2 来填充 DF1 列中的缺失值 任何帮助将非常感激 Udp
  • IBM Data Server Client v9.7fp5 的日期时间字段溢出

    使用 EntityFramework v4 1 和 IBM 数据服务器客户端v9 7fp5 DB 首先根据预定义的具有 DATE 列的 DB2 表生成代码 DB2 DATE 列在代码生成期间映射到 NET DateTime 数据类型 当尝试
  • 如何在 mysql 中使用 UPDATE 自动声明行或资源

    我有一个资源表 比如说汽车 我想以原子方式声明它 然后我想要有关我刚刚声明的资源的信息 如果每个用户只能使用一种资源 我可以采取以下技巧 UPDATE cars SET user bob WHERE user IS NULL LIMIT 1