导致 INSERT 失败的触发器?可能的?

2023-11-24

在清理中这个答案我学到了一些关于TRIGGERMySQL 中的 s 和存储过程,但令人惊讶的是,虽然BEFORE INSERT and BEFORE UPDATE触发器可以修改数据,它们似乎不会导致插入/更新失败(即验证)。在这种特殊情况下,我能够通过以导致主键重复的方式操作数据来使其工作,这在这种特殊情况下是有意义的,但在一般意义上不一定有意义。

MySQL 中可以实现这种功能吗?在任何其他 RDBMS 中(遗憾的是我的经验仅限于 MySQL)?也许是一个THROW EXCEPTION样式语法?


由此博客文章

MySQL 触发器:如何中止 INSERT、UPDATE 或 DELETE 扳机?在 EfNet 的 #mysql 上有人 问:

如果我的业务规则失败,如何使触发器中止操作?

在 MySQL 5.0 和 5.1 中,您需要 采取一些诡计来制造 触发失败并提供有意义的 错误信息。 MySQL 存储 程序常见问题解答说明了有关错误的信息 处理:

SP 11. SP 是否有“提出申请错误”的“提出”声明?抱歉,目前没有。 SQL 标准 SIGNAL 和 RESIGNAL 语句位于 TODO 上。

也许 MySQL 5.2 将包含 SIGNAL 声明这将使这个黑客 直接从 MySQL 存储中窃取 程序编程已过时。什么 是黑客吗?你要强行 MySQL 尝试使用一个列 不存在。丑陋的?是的。可以 工作?当然。

CREATE TRIGGER mytabletriggerexample
BEFORE INSERT
FOR EACH ROW BEGIN
IF(NEW.important_value) < (fancy * dancy * calculation) THEN
    DECLARE dummy INT;

    SELECT Your meaningful error message goes here INTO dummy 
        FROM mytable
      WHERE mytable.id=new.id
END IF; END;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导致 INSERT 失败的触发器?可能的? 的相关文章

随机推荐

  • 如何检测我的程序可用的堆栈空间量?

    我的 Win32 C 应用程序充当 RPC 服务器 它具有一组用于处理请求的函数 并且 RPC 运行时创建一个单独的线程并调用该线程中的一个函数 在我的函数中 我有一个 std auto ptr 用于控制编译时已知大小的堆分配的 char
  • 正在初始化颤动。这可能需要几分钟的时间

    第一篇文章 抱歉 新手帖子 我已经在 Google 和 StackOverFlow 上进行了搜索 以解决 VSCode 上的上述查询 但没有任何人可以帮助解决此错误 我将非常感激 它只是不断加载以下消息 正在初始化 Flutter 这可能需
  • 为函数体内的 dplyr 参数提供多组变量

    这是数据 library tidyverse data lt tibble tribble var1 var2 var3 var4 var5 a d g hello 1L a d h hello 2L b e h k 4L b e h k
  • SELECT MAX(... 在 PHP/MYSQL 中不返回任何内容

    这是表结构 Table test PAGE CONTENT 1 ABC 2 DEF 3 GHI PAGE是具有数据类型的主节点INT 11 它不会自动递增 CONTENT 的数据类型TEXT 在 PHP 中我做 result mysql q
  • 如何防止数据成员被序列化

    我只想反序列化某个数据成员 而不对其进行序列化 我知道我可以设置 EmitDefaultValue false 并将该值设置为 null 但我也不想更改数据成员的值 还有其他方法可以实现此目的吗 序列化器是 DataContractSeri
  • 通过 Masters 的脚本控制台在所有 Jenkins 从机上运行远程命令

    我想运行相同的 shell 命令 非常简单的 shell 命令 例如ls 在所有 UNIX 从站上 通过使用主站的脚本控制台连接到主站 我如何使用 groovy 来做到这一点 想做这样的事情 显示有关节点的信息但我不想显示信息 而是想在每个
  • 在 sweetalert2 内容中使用 vue 组件

    我有几个简单的甜蜜警报2a 中的情态动词Vue项目 我想在警报中使用自定义组件 例如
  • Android 低功耗蓝牙:characteristic.getPermissions() 返回 0?

    我正在编写一个Android BLE应用程序 我正在尝试获取某个特性的权限 我已经设法使用characteristic getProperties 获取特征属性 并且它返回一个非零值 但是 当我使用getPermission 方法时 它返回
  • FPDF 如何强制分页

    我正在使用 FPDF 1 7 将 TXT 文件转换为 PDF 我想在 PDF 产品中强制分页 使用 php 创建文本文件 并成功使用回车符 r 但我无法让换页符 f 出现在 PDF 中 是否有另一种方法可以通过更改原始文本文件或 php 代
  • 致命错误:无法重新声明类数据库

    我收到胎儿错误消息 致命错误 无法在第 3 行的 C wamp www pets new lib database php 中重新声明类数据库 require once lib message php require once lib us
  • 如何找到对象的键?

    我知道在 JavaScript 中 objects作为哈希值的两倍 但我一直无法找到内置函数来获取密钥 var h a b c d 我想要类似的东西 var k h keys k a c 自己编写一个函数来迭代项目并将键添加到我返回的数组中
  • 在 pandas 情节图例中显示非 ASCII(日语)字符

    如果我这样做 import pandas as pd pd DataFrame data nr random 2 2 columns u u 日本 plot Result So 显示 但不显示日本 经过一番谷歌搜索后 我发现了这个page这
  • 在 C# 中渲染图形

    除了 C 之外还有其他渲染图形的方法吗GDI and XNA 用于开发瓦片地图编辑器 SDL NET这是我喜欢的解决方案 如果您需要在其之上进行 3D 您可以使用Tao OpenGL 在其内部进行渲染 速度快 符合行业标准 SDL 即 并且
  • 在 Python 中接受 Cookie

    如何在 python 脚本中接受 cookie 尝试这个 import urllib2 import cookielib jar cookielib FileCookieJar cookies opener urllib2 build op
  • 从另一个 WPF 应用程序加载 WPF 应用程序程序集,出现错误:无法在同一 AppDomain 中创建多个 System.Windows.Application 实例

    场景 启动程序 WPF应用程序 gt gt Build 32bit Net 4 5 1 location D 加载程序 另一个 WPF 应用程序 gt gt Build 32bit Net 4 5 1 location D I m owne
  • SQL-将列中的值相加

    如何将 SQL 列中的值相加 我在 xampp 中设置了表格 并尝试将标题为 gross 的列中的所有值相加 SQL Server 或 MySQL select sum MyColumn as MyColumnSum from MyTabl
  • 为什么父元素不包含边距?

    当具有边距的元素包含在另一个元素中时 父元素不会始终包裹 包含该边距 很多事情都会导致父级包含子级的边距 border solid position absolute display inline block overflow auto 这
  • 如何使用下载的示例代码启动 Android 项目

    我对 android 还很陌生 刚刚完成环境设置并阅读了一些教程 然后我从网上获取了sdk示例 好的 我想问您的是 有没有办法在 Eclipse 中将示例作为项目启动 我的意思是单击 C 中的项目文件或解决方案文件 这是我解压代码的文件夹
  • SQL Server 2019 Express 安装失败,因为找不到 2017 驱动程序?

    我安装了SQL Server 2019的基本配置 最后报错 Oops 无法安装 SQL Server setup exe 退出代码 十进制 2068052310 错误描述 Microsoft 产品的安装包 找不到 SQL Server 的
  • 导致 INSERT 失败的触发器?可能的?

    在清理中这个答案我学到了一些关于TRIGGERMySQL 中的 s 和存储过程 但令人惊讶的是 虽然BEFORE INSERT and BEFORE UPDATE触发器可以修改数据 它们似乎不会导致插入 更新失败 即验证 在这种特殊情况下