首页 / 知识
关于数据库:在MySQL触发器中引发错误
2023-04-11 12:37:00

Throw an error in a MySQL trigger
如果我在表上有一个
从MySQL 5.5开始,您可以使用
状态45000是表示"未处理的用户定义的异常"的一般状态。 这是该方法的更完整示例:
这是一种可行的技巧。这不是干净的,但看起来可能可行: 本质上,您只是尝试更新不存在的列。 不幸的是,@ RuiDC提供的答案在5.5之前的MySQL版本中不起作用,因为没有针对存储过程的SIGNAL实现。
我发现的解决方案是模拟引发 黑客可以使用触发器或存储过程来实现。我将在@RuiDC使用的示例之后,在下面介绍这两个选项。 使用触发器
使用存储过程 存储过程允许您使用动态sql,这使将错误生成功能封装在一个过程中成为可能。反对的是,我们应该控制应用程序的插入/更新方法,因此它们仅使用我们的存储过程(不向INSERT / UPDATE授予直接特权)。
以下过程是(在mysql5上)抛出自定义错误并同时记录它们的一种方法:
可以使用的另一种(hack)方法(如果由于某种原因您不在5.5+上): 如果您具有必填字段,则在触发器内,将必填字段设置为无效值,例如NULL。这对INSERT和UPDATE均适用。请注意,如果NULL是必填字段的有效值(出于某种疯狂的原因),则此方法将不起作用。
如果您使用的是5.5+,则可以按照其他答案中所述使用信号状态:
|
最新内容
相关内容
python错误类型有哪些
python错误类型有哪些,异常,系统,培训,错误,代码,标准,检测,类型,程序,逻辑,python的错误有语法错误和逻辑错误语法错误程序执行过程中,pythonpython怎样忽略warning警告错误?
python怎样忽略warning警告错误?,培训,情况,代码,错误,模块,下面,之前,以上,程序,更多,python开发中经常遇到报错的情况,但是warning通常并不关于asp.net:RaisePostBackEvent不
关于asp.net:RaisePostBackEvent不触发,关于asp.net:RaisePostBackEvent不触发,自定义控件,客户端,调用,控件,RaisePostBackEvent no关于数据库:将图像存储在数据库中-
关于数据库:将图像存储在数据库中-是或否?,关于数据库:将图像存储在数据库中-是或否?,位置,图像,应用程序,文件系统,Storing Images in D最新HTML5基础语法分享
最新HTML5基础语法分享,最新,HTML5,基础,语法,分享,超文本,Web,是,一个,, 超文本 Web 是一个超文本文件的集合,超文本文件是 W关于JavaScript switch 语句语法
关于JavaScript switch 语句语法,关于,JavaScript,switch,语句,语法,JavaScriptswitch,, JavaScriptswitch语句 switch语句用于基JavaScript 错误 - Throw 和 Try t
JavaScript 错误 - Throw 和 Try to Catch,JavaScript,错误,Throw,和,Try,Catch,JavaScript,错误,,JavaScript 错误 - Throw 和 TryJavaScript简单的使用语法介绍
JavaScript简单的使用语法介绍,JavaScript,简单,的,使用,语法,介绍,JavaScript,是,,JavaScript 是一个脚本语言,它是一个轻量级,但功JavaScript函数的的语法分享
JavaScript函数的的语法分享,JavaScript,函数,的的,语法,分享,JavaScript,使用,, JavaScript使用关键字function定义函数。addEventListener()方法与语法
addEventListener()方法与语法,addEventListener,方法,与,语法,addEventListener,方法,, addEventListener()方法 实例 在jQuery 事件方法语法
jQuery 事件方法语法,jQuery,事件,方法,语法,jQuery,事件,方法,语法,在,,jQuery 事件方法语法在 jQuery 中,大多数 DOM 事件都有一个关于jQuery slideUp() 方法的语法
关于jQuery slideUp() 方法的语法,关于,jQuery,slideUp,方法,的,语法,jQuery,slideUp,,jQuery slideUp() 方法jQuery slideUp() 方