基于查询的触发器是原子的吗?

2024-03-06

我有一个带有序列号的表。此序列号将会更改,并且引用自动编号将不起作用。我担心触发器的值会发生冲突。如果两个事务同时读取。

我已经对 3 个连接运行了模拟测试,每个连接约 100 万条记录,没有发生冲突。

CREATE TABLE `aut` (
  `au_id` int(10) NOT NULL AUTO_INCREMENT,
  `au_control` int(10) DEFAULT NULL,
  `au_name` varchar(50) DEFAULT NULL,
  `did` int(10) DEFAULT NULL,
  PRIMARY KEY (`au_id`),
  KEY `Did` (`did`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

TRIGGER `binc_control` BEFORE INSERT ON `aut` 
FOR EACH ROW BEGIN
SET NEW.AU_CONTROL = (SELECT COUNT(did)+1 FROM aut WHERE did = NEW.did);
END;

是的,如果两个会话同时运行触发器,这会受到竞争条件的影响。您不应该使用此解决方案。

测试期间可能不会发生,但您可以假设它will发生在生产过程中。 :-)

有句老话说,下周二是百万分之一 http://blogs.msdn.com/b/larryosterman/archive/2004/03/30/104165.aspx.

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

基于查询的触发器是原子的吗? 的相关文章

  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • #1045 - 用户“root”@“localhost”的访问被拒绝(使用密码:YES)

    这可能看起来多余 但我无法找到正确的解决方案 我无法使用 mysql 控制台登录 mysql 它要求输入密码 但我不知道我实际输入的内容 有办法获取密码或更改密码吗 这就是我的 config inc 的样子 当我尝试打开 phpmyadmi
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 将 mysql LONGTEXT 值转换为 VARCHAR 值?

    我有一个在用户 Facebook 墙上发布的功能 我发送到 facebook 的一件事是我从设置为 LONGTEXT 的 mysql 表中获取的一些文本 如果我将表设置为 LONGTEXT 则文本不会发送到 facebook 但如果我将表设
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • 如何使用 exec.Command 在 golang 中执行 Mysql 脚本

    您好 我正在尝试执行一个脚本以使用 Golang 将数据填充到数据库中 func executeTestScript cmd exec Command usr local mysql bin mysql h127 0 0 1 P3333 u
  • MySql 从另一个表中减去一个表

    我有两个表 A 包含所有数据 表 B 从 A 中随机选择 25 的数据创建 所以 A 和 B 具有完全相同的列 也没有独特的列 我想做的是从 A 中减去 B 有什么想法吗 查看所有行A除了那些在B SELECT FROM A WHERE f
  • 有没有办法只安装mysql客户端(Linux)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有不需要安装整个mysql db安装包的Linux mysql命令行工具 我想做的是从服务器 1 应用程序服务器 执行将在服务器 2
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in
  • 如何告诉node.js mysql没有在默认端口上运行?

    我遇到了与此人类似的问题 连接 ECONNREFUSED 节点 js sql https stackoverflow com questions 8825342 connect econnrefused node js sql 我正在尝试将
  • mysqldb接口错误

    我对 mysqldb python 的 mysql 模块 有一个非常奇怪的问题 我有一个文件 其中包含用于在表中插入记录的查询 如果我从文件中调用函数 它就可以正常工作 但是当尝试从另一个文件调用其中一个函数时 它会抛出一个 mysql e
  • 判断是否存在多对多记录组合

    这似乎是一个常见的任务 有一个简单的解决方案 但我在 StackOverflow 和 Google 上都空手而归 场景是这样的 我有两个共享多对多关系的表 A 和 B 因此 我有一个带有外键的表 A B 它映射 A 到 B 记录关系 标准的
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 搜索多个表 (SQL)

    我需要能够有一个 SQL 查询来使用简单的搜索来搜索我的数据库 这是我的表格现在的样子 Table artists id name Table albums id artistID name Table songs id albumID n
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • MySQL 中的类型:BigInt(20) 与 Int(20)

    我想知道两者之间有什么区别BigInt MediumInt and Int是 很明显 它们会允许更大的数量 不过 我可以做一个Int 20 or a BigInt 20 这会让人觉得这并不一定与尺寸有关 一些见解会很棒 只是有点好奇 我一直
  • 在 Java Web 应用程序中获取 DataSource 资源

    我的 context xml 文件中有以下资源标记

随机推荐

  • 如何在 mongodb 中使用构面操作查找字段的不同值

    FilteredAccording 部分和categorizedBy 使用我在链接中提供的查询按预期工作 但我在 findDistinct 部分遇到问题 在 mongodb 中我有以下数据 id 10001 university SPYU
  • Jmeter JSR223 Sampler - 无法将数据写入 CSV 文件

    我正在使用 Jmeter v4 0 r1823414 根据这个答案 https stackoverflow com questions 50820389 unable to set incremental variable in jmete
  • 远程连接到 WebDev.WebServer.exe

    开发 ASP Net 网站 运行IE8 需要在IE6下测试网站 MultipleIE6 安装被 IE8 安装破坏 无法在文本框中输入 是的 我删除了缓存 是的 我重新注册了 dll 创建运行 IE6 的 VPC 无法连接到主机 WebDev
  • 如何防止结构体的默认构造函数被调用?

    有什么方法可以阻止调用结构体的默认构造函数吗 我的项目中有几个结构 其中一些结构在任何情况下都不能调用默认构造函数 这将导致我的代码中出现很多不需要的行为 PS 任何在编码时指示我某些特殊结构 无法使用默认构造函数实例化 被 错误 实例化的
  • finplot 作为布局中的小部件

    我正在尝试添加finplot https pypi org project finplot https pypi org project finplot 作为我的 UI 中布局之一的小部件 我创建了一个小部件finplot并将其添加到布局中
  • 访问 Jinja2 中的宏观上下文

    我想访问上下文函数内 jinja2 宏命名空间中的变量 假设我的宏看起来像 macro show var a show var context function a endmacro 我的上下文函数如下所示 contextfunction
  • 在 Yii2 中隐藏 URL 中的网页

    我已遵循中描述的答案这个问题 https stackoverflow com questions 27178364 yii 2 0 hiding basic web from the url along with the index php
  • C++ OutputIterator 后递增要求

    C 要求 OutputIterator 类型X支持形式的表达式r where r是一个实例X 此后缀增量在语义上必须等同于 X tmp r r return tmp 并且必须返回一个可转换为的类型X const 在 C 11 中 请参阅 2
  • 在 Visual Studio 中从包管理器控制台使用 git

    我正在尝试使用git从 Visual Studio 2010 中的包管理器控制台窗口 git命令按预期运行 与网络相关的命令除外 当我尝试时git push origin masterStudio 停止响应 代码已推送到 github co
  • Include() 然后包含() 在每个层次结构表策略中抛出“序列包含多个匹配元素”异常

    我正在使用 Entity Framework 7 和代码优先 并且我有一个涉及 3 个级别的父子关系的模型 Corporations have companies Companies属于一个corporation并有factories Fa
  • Q列出并删除

    我有一个QList带有指向类类型对象的指针Model 我想适当删除这个QList使用后 我知道 Qt 的哲学是避免 C 风格的内存管理 我如何delete this QList 你可以使用q删除全部 http qt project org
  • WPF ShowDialog 和 ElementHost

    是否可以从作为 ElementHost 子级的 WPF 用户控件显示模态窗口 并将模态窗口的所有者 父级设置为包含的 Form 控件 我猜您不能执行此操作 因为 Owner 属性采用 Window 的实例 而我想将其设置为 Element
  • 使用 UINavigatonController 有条件地跳过 iOS 5 应用程序中的 UIViewController

    在我们的 iOS 应用程序中 有三个UIViewController一个接着一个 我们想根据某些条件跳过中间的 直接从第一到第三 但是 用户应该能够通过第三个控制器上的 后退 按钮返回到第二个控制器 I tried self perform
  • 获取树枝模板文件中使用的所有变量[重复]

    这个问题在这里已经有答案了 是否可以获取树枝模板中使用的所有变量 例如 在模板上 ul for item in navigation li a href item caption a li endfor ul h1 My Webpage h
  • 从 Firefox 扩展设置 HTTP 标头

    如何在 Firefox 扩展中设置 HTTP 标头 我将做到这一点 以便这些仅在访问我的网站时发送 以便我可以检测插件是否已安装 如果安装了 则不会推广该插件 这是我发现的最紧凑的方法 Components classes mozilla
  • 我应该使用哪个移动开发开源框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的公司想开发一个移动应用程序 Web 应用程序 本机应用程序还是混合应用程序 他们其实不知道 在这种情况下 他们要求我对移动开发的开源框架 跨
  • 如何重置参数值以便代理可以再次请求参数?

    我创建了一个对话流代理和其中的多个意图 其中一种意图需要 2 个参数 账户和余额类型 然后 它发送 Webhook 请求 其中写入代码以检查数据库中是否存在帐号 如果是的话 它会获取余额并发回给用户 现在 如果帐号不存在 我必须要求用户再次
  • 使用 json4s 序列化和反序列化 scala 枚举或 case 对象

    假设我有一个枚举或密封的案例对象组 如下所示 sealed abstract class Status case object Complete extends Status case object Failed extends Statu
  • Oracle ORDER BY 中忽略与号 (&) 字符

    我正在 Oracle 中运行一个查询 该查询按可能包含带有 号的值的列排序 然而 排序算法似乎忽略了 符号 例如 select from select txt from dual union select P txt from dual u
  • 基于查询的触发器是原子的吗?

    我有一个带有序列号的表 此序列号将会更改 并且引用自动编号将不起作用 我担心触发器的值会发生冲突 如果两个事务同时读取 我已经对 3 个连接运行了模拟测试 每个连接约 100 万条记录 没有发生冲突 CREATE TABLE aut au