创建自定义错误消息 MySQL

2024-02-03

在 MySQL 中,如何为此错误消息创建自定义消息:

无法删除或更新父行:外键约束失败 (database.jenis_fasum, 约束jenis_fasum_ibfk_1外键 (id_kategori) 参考kategori_fasum (id_kategori))

也许使用触发器?有人可以举个例子吗?

感谢您的帮助


我认为这不可能在短时间内完成TRIGGER,但可以使用 MySQL 5.5 中的存储过程来完成。

这是默认的错误消息:

mysql> INSERT INTO area SET location_id = 'invalid';
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`rates`.`area`, CONSTRAINT `area_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `location` (`id`))

mysql> SHOW ERRORS;
+-------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                                                                                              |
+-------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Error | 1452 | Cannot add or update a child row: a foreign key constraint fails (`rates`.`area`, CONSTRAINT `area_ibfk_1` FOREIGN KEY (`location_id`) REFERENCES `location` (`id`)) |
+-------+------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

这是我们的存储过程:

DROP PROCEDURE IF EXISTS test1;

DELIMITER //

CREATE PROCEDURE test1()
DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY INVOKER
BEGIN
  DECLARE EXIT HANDLER FOR SQLSTATE '23000'
  BEGIN
    SIGNAL SQLSTATE '23000' SET 
      MYSQL_ERRNO = 1452,
      MESSAGE_TEXT = 'Yo! Error 23000!';
  END;

  INSERT INTO area SET location_id = 'invalid';
END;
//

DELIMITER ;

这是我们的自定义错误消息:

mysql> CALL test1();
ERROR 1452 (23000): Yo! Error 23000!

mysql> SHOW ERRORS;
+-------+------+------------------+
| Level | Code | Message          |
+-------+------+------------------+
| Error | 1452 | Yo! Error 23000! |
+-------+------+------------------+
1 row in set (0.00 sec)

顺便问一下,你为什么想要这个?

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

创建自定义错误消息 MySQL 的相关文章

  • MySQL 中有“connect by”替代方案吗?

    如果我使用 Oracle 有connect by可用于创建分层查询的关键字 目前我正在一个项目中使用MySQL 我想知道是否有替代方案connect by在 MySQL 中 我尝试过谷歌 但到目前为止还没有结果 我想要实现的是通过一个查询从
  • PHP 5.4 PDO 无法使用旧的不安全身份验证连接到 MySQL 4.1+

    我知道有很多类似的问题 事实上我已经阅读了所有 9 个问题 但是 他们都没有解决我的问题 我有一个共享托管包 最低限度 我的包中包含域名和托管 MySQL 服务器的单独 IP 地址 为了开发 我正在使用http localhost 与 PH
  • 哈希密码字段使用什么数据类型以及长度?

    我不确定密码哈希是如何工作的 稍后将实现 但现在需要创建数据库模式 我正在考虑将密码限制为 4 20 个字符 但据我了解 加密后哈希字符串的长度将有所不同 那么 如何将这些密码存储在数据库中呢 更新 仅使用哈希函数不足以存储密码 你应该阅读
  • MySQL LAST_INSERT_ID() 和 FOUND_ROWS()

    当 PHP 脚本每秒有数百个查询时会发生什么 它会影响这些函数吗 是否保证它们会返回当前脚本中最后一个插入语句中最后插入的 id 它会返回当前脚本中最后一次选择的行数吗 如果同时从另一个脚本进行新的插入或选择 在 FOUND ROWS 的情
  • 如何使用外连接和分组依据在查询中包含 NULL 值

    我有两个表 其中包含以下示例数据 Table 1 item name item id item desc 1 apple 2 orange 3 banana 4 grape 5 mango Table 2 user items user i
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所
  • 如何查找所有mysql表之间的所有关系?

    如何找到MySQL所有表之间的所有关系 例如 如果我想知道大约有 100 个表的数据库中表的关系 有什么办法知道这个吗 从编程角度来说 更好的方法是从以下位置收集数据 INFORMATION SCHEMA KEY COLUMN USAGE表
  • 如何处理PDO异常[重复]

    这个问题在这里已经有答案了 我正在尝试与PDOphp 上的类 但我在找到处理错误的正确方法时遇到了一些麻烦 我编写了以下代码
  • Python 子进程、mysqldump 和管道

    我在尝试构建简单的备份 升级数据库脚本时遇到问题 错误出现在使用子进程的 mysqldump 调用中 cmdL mysqldump user db user password db pass domaindb gzip gt databas
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • MySQL - 从另一个表插入与常量合并的数据

    我有一个包含一些数据的临时表 products temp 并且我有另一个需要将数据插入其中的表 产品 我需要在新记录上手动设置一些常量 例如vendor id 1等 是否可以在一次请求中插入临时表数据和常量 临时产品 product nam
  • 如何绑定值 INSERT INTO mysql perl

    我有下面的代码可以工作 但我需要知道如何绑定它们以确保安全 如果我只是将 new row 替换为 并将其放入执行中我收到错误 感谢您的帮助 foreach my field account field order new row param
  • 如何更新 MySQL 数据库中的两列?

    这不起作用 UPDATE customers SET firstname John AND lastname Smith WHERE id 1 用逗号分隔值 AND是一个逻辑运算符 它的位置是WHERE and ON条款 UPDATE cu
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • 在 PHP 中比较字符串的方式与 MySQL 相同

    我将 varchar 存储在 utf8 MySQL 表中并使用 utf8 general ci 排序规则 我在 varchar 上有一个唯一索引 我想在 PHP 中进行字符串比较 这相当于 MySQL 对索引所做的操作 一个具体的例子是 我
  • Codeigniter $this->db->reconnect();用法

    I m not自动加载数据库 因为我的应用程序的大多数页面don t需要数据库处理 否则整个事情会变慢 我想要做的是 当数据库已经存在时 不要建立与数据库的新连接 而是使用它而不是打扰服务器数据库 那么我该如何实施 this gt db g
  • 在 ASP.NET MVC 中使用 MySQL 的 AccountController

    在 Visual Studio 中创建默认的 ASP NET MVC 项目会设置一个可以在其中注册用户的基本项目 我将如何继续更改它以使用 MySQL 服务器而不是 SQLServer 现在可以使用了 安装最新的 Connector NET
  • 使用另一个表中的数据查找并替换 MySQL 中的字符串

    我有两个 MySQL 表 我想使用另一个表中的数据查找和替换一个表中的文本字符串 Table texts messages thx guys i think u r great thx again u rock Table dictiona
  • PHP:使用输入和输出参数(不是“INOUT”)调用 MySQL 存储过程

    我想从 PHP 调用 MySQL 中的存储过程 该过程需要输入and输出参数 not INOUT 参数 举一个简单的例子 假设我在 MySQL 中有以下存储过程 DELIMITER DROP PROCEDURE IF EXISTS test
  • ASP.NET API:尚未为此 DbContext 配置数据库提供程序

    我正在尝试从我的 Net Core API 项目连接到 MySql 数据库 这是我的上下文类 public class MyContext DbContext public MyContext public MyContext DbCont

随机推荐

  • 来自 os.listdir() 的非字母数字列表顺序

    我经常使用 python 来处理数据目录 最近 我注意到列表的默认顺序已更改为几乎无意义的内容 例如 如果我位于包含以下子目录的当前目录中 run01 run02 run19 run20 然后我通过以下命令生成一个列表 dir os lis
  • SWT 应用程序中 com.ibm.icu.text.BreakDictionary.main 中的 ArrayIndexOutOfBoundsException

    我正进入 状态 Exception in thread main java lang ArrayIndexOutOfBoundsException 0 at com ibm icu text BreakDictionary main Bre
  • 在 AWS Elastic Beanstalk 上使用 Django 自动设置 Apache Solr - Oscar

    我需要确保阿帕奇 索尔 https lucene apache org solr 与我的 django oscar 应用程序一起安装 并且一直在使用这些指示 http django oscar readthedocs org en late
  • 根据输入值设置 jQuery 日期范围选择器的日期

    https github com longbill jquery date range picker https github com longbill jquery date range picker 我一切都工作得很好 但我似乎无法让选
  • 如何在启动操作系统之前进行一些安全验证?

    我有一个可启动闪存盘 其中包含定制的 Ubunto 我想将闪存盘传递给未知的人 但它存在一些安全问题 我想确保未知的人无法更改闪存盘内容 因此 我想计算闪存内容的哈希值并在每次启动时验证它 并在验证失败或哈希不匹配时防止启动操作系统 为此
  • 如何更改Android SeekBar轨道开始位置?

    我想设置SeekBars的轨道起始位置 因此它不会从搜索栏的左侧开始 而是形成任意位置 这是一张 Photoshop 图像 它应该是这样的 http i imgur com QCMEu png https i imgur com QCMEu
  • Cim_PhysicalMemory 和 Win32_ComputerSystem 返回不同的内存量

    我正在尝试编写一个 PowerShell 脚本来显示服务器 具有 512 GB 的物理服务器 中安装的内存量 我尝试了三种不同的方法 得到了不同的结果 Win32 PhysicalMemory https msdn microsoft co
  • 如何将 tabs.executeScript 与 React 一起使用

    在我的一个组件中 当加载该组件时 我希望我的扩展将脚本注入到运行该扩展的当前选项卡中 该脚本本质上获取源代码并将其保存为字符串 所以 在我的componentWillMount我尝试通过以下方式注入脚本 componentWillMount
  • 解析宏变量名称中包含 %eval 的宏,SAS

    这是一个玩具示例 旨在帮助解决我遇到的更大问题 它本质上涉及在引用更大的宏变量名称时使用 eval 宏 我创建了一个宏变量 x 2 它使用循环 it 的值 从最终输出可以看出该变量已成功创建 但是我只能将其放入日志而不评估 it 1 这当使
  • 是否有贝叶斯信念网络框架“Infer.NET”的 java 替代品?

    java 是否可以替代贝叶斯信念网络框架 Infer NET 如果它具有可扩展性 大型数据集的在线学习 良好的支持 自 2010 年以来最新更新 开源且易于编写网络结构 则更好 所有功能均来自 Infer NET 你也许还应该考虑Samia
  • 应用程序最小化时的 Electron win.flashFrame() 方法

    win flashFrame 使托盘图标闪烁 直到单击该图标并且应用程序窗口再次回到焦点 在 Windows 10 上 但是 如果应用程序最小化 闪烁会在几秒钟后自动结束 甚至无需单击图标 我怎样才能防止这种情况发生 如果窗口最小化 用户将
  • 对对象列表进行排序的算法

    假设您有一个对象列表 用户在工作时几乎使用所有对象 如何对对象列表进行排序 以便列表适应用户最常使用的顺序 您可以使用什么算法来实现这一点 编辑 许多答案建议计算对象的使用次数 这是行不通的 因为所有对象都使用相同的数量 只是顺序不同 在你
  • 在 iPhone UITextView 上打字(如 Twitter)时建议 # 个标签

    我正在构建一个使用主题标签的应用程序 例如 Twitter 或 Tweetbot 当您输入消息时 如果您输入主题标签符号 我会建议与您当前输入的标签相匹配的标签 我已经弄清楚如何让 UITableView 出现并显示主题标签列表 但我不知道
  • 修改音频样本缓冲区的音量增益

    我想增加语音数据缓冲区的音量 重点是我正在使用 DirectSound 并且我有一个主要缓冲区和一个辅助缓冲区 所有流混合都是手动完成的 在语音聊天中 所有参与者都可以拥有独立的音量级别 我将每个流数据乘以一个值 增益 并将其求和到一个缓冲
  • 如何使用键盘快捷键向上/向下移动 Jupyter 笔记本单元格?

    有人知道在 Jupyter 笔记本中向上或向下移动单元格的键盘快捷键吗 找不到捷径 有什么线索吗 以下解决方案适用于 JupyterLab 我目前拥有版本 2 2 6 您必须首先打开键盘快捷键配置文件 在 JupyterLab 中 您可以在
  • Jetty 7:为 Start.java 配置 JNDI

    遵循 Wicket 1 5 的指导 我将项目从 Jetty 6 1 25 转换为 7 5 0 v20110901 我现有的Start java包含以下设置 我用它来配置 JNDI EnvConfiguration envConfigurat
  • Javamail ISO-8859-1 格式

    我使用 Javamail Api 为我的 Android 手机制作了一个电子邮件客户端 如果我尝试使用以下方法获取发件人的邮件地址和收件人的邮件地址 Address froma m getFrom String from InternetA
  • React-chartjs-2 与 ChartJs 3:错误“arc”不是注册元素

    我正在开发一个 React 应用程序 我想在其中显示图表 我尝试使用react chartjs 2 但我找不到让它工作的方法 当我尝试使用 Pie 组件时 出现错误 Error arc is not a registered element
  • StringBuilder.ToString() 的复杂性是多少

    在 C 中 复杂度是多少StringBuilder ToString 是 O 1 O N 还是其他 不同框架版本有所不同 在旧版本中StringBuilder工作于string直接 所以没有额外费用 ToString 它只是直接向您提供数据
  • 创建自定义错误消息 MySQL

    在 MySQL 中 如何为此错误消息创建自定义消息 无法删除或更新父行 外键约束失败 database jenis fasum 约束jenis fasum ibfk 1外键 id kategori 参考kategori fasum id k