返回顶部
首页 > 资讯 > 数据库 >MySQL 5.5新增SIGNAL异常处理怎么用
  • 717
分享到

MySQL 5.5新增SIGNAL异常处理怎么用

2024-04-02 19:04:59 717人浏览 独家记忆
摘要

这篇文章主要介绍Mysql 5.5新增SIGNAL异常处理怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql 5.5新增SIGNAL异常处理 Mysql 从 5

这篇文章主要介绍Mysql 5.5新增SIGNAL异常处理怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

mysql 5.5新增SIGNAL异常处理
 
Mysql 从 5.0 开始支持存储过程,到现在最新版本5.5 已经好几个年头了。 虽然MYSQL的异常处理不是很完善,但是处理大多数的应用还是足够了。
异常处理的语句有如下几种:
1. DECLARE ... CONDITioN.
2. DECLARE ... HANDLER.
3. RESIGNAL.
4. SIGNAL.
 
第一种,名为条件声明。
DECLARE condition_name CONDITION FOR condition_value
 
这里condition_name 为标准的变量命名, condition_value 为SQLSTATE 值 或者 MySQL 自身的ERROR CODE.
单独的condition 语句不能直接运行。 只能作为第二种的一部分。
  www.2cto.com  
第二种, 名为条件处理。
第一种声明好了,接下来自然要做相应的处理。
DECLARE handler_action HANDLER
    FOR condition_value [, condition_value] ...
    statement
 
handler_action:
    CONTINUE
  | EXIT
  | UNDO
 
condition_value:
    mysql_error_code
  | SQLSTATE [VALUE] sqlstate_value
  | condition_name
  | SQLWARNING
  | NOT FOUND
  | SQLEXCEPTION
 
handler_action 代表处理的动作,目前有效的有两种, 继续和直接退出。
condition_value 有好几种,其中包括前面条件声明里的SQLSTATE, MYSQL EEROR CODE, condition_name 以及范围混淆的其他两种
SQLWARNING,SQLEXCEPTION. NOT FOUND表示任何不存在的WARNING或者ERROR。
 
第三种, 代表伪装系统的错误信息以及代码,刷新当前警告缓冲区域。
RESIGNAL [condition_value]
    [SET signal_infORMation_item
    [, signal_information_item] ...]
 
condition_value:
    SQLSTATE [VALUE] sqlstate_value
  | condition_name
 
signal_information_item:
    condition_information_item_name = simple_value_specification
 
condition_information_item_name:
    CLASS_ORIGIN
  | SUBCLASS_ORIGIN
  | MESSAGE_TEXT
  | MYSQL_ERRNO
  | CONSTRaiNT_CATALOG
  | CONSTRAINT_SCHEMA
  | CONSTRAINT_NAME
  | CATALOG_NAME
  | SCHEMA_NAME
  | TABLE_NAME
  | COLUMN_NAME
  | CURSOR_NAME
 
特别注意的是可以伪装的具体东西很多,包括错误代码(MYSQL自身的东东),错误内容,错误的名,表名,列名等等。
 
第四种,SIGNAL和RESIGNAL差别不大,我们记住signal 不能单独运行,resignal可以单独运行。
SIGNAL condition_value
    [SET signal_information_item
    [, signal_information_item] ...]
 
condition_value:
    SQLSTATE [VALUE] sqlstate_value
  | condition_name
 
signal_information_item:
    condition_information_item_name = simple_value_specification
 
condition_information_item_name:
    CLASS_ORIGIN
  | SUBCLASS_ORIGIN
  | MESSAGE_TEXT
  | MYSQL_ERRNO
  | CONSTRAINT_CATALOG
  | CONSTRAINT_SCHEMA
  | CONSTRAINT_NAME
  | CATALOG_NAME
  | SCHEMA_NAME
  | TABLE_NAME
  | COLUMN_NAME
  | CURSOR_NAME
 
我们现在给几个例子。
 
不用RESIGNAL/SIGNAL。
[sql] 
DELIMITER $$  
  
USE `t_girl`$$  
  
DROP PROCEDURE IF EXISTS `sp_signal1`$$  
  
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_signal1`(  
    IN f_id INT  
    )  
BEGIN  
      DECLARE con1 TINYINT DEFAULT 0;  
      DECLARE con1 CONDITION FOR SQLSTATE '23000';  
      DECLARE CONTINUE HANDLER FOR con1  
      BEGIN  
        SELECT 'Error Code : 22\r\nDuplicated!';  
      END;  
      INSERT INTO user_info VALUES (f_id);  
    END$$  
  
DELIMITER ;  
 
CALL sp_signal1(12);
 
query result
 
result
Error Code : 22
Duplicated!
 
用RESIGNAL/SIGNAL 重刷当前错误诊断区域。
 
[sql] 
DELIMITER $$  
  
    www.2cto.com  
USE `t_girl`$$  
  
  
DROP PROCEDURE IF EXISTS `sp_signal1`$$  
  
  
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_signal1`(  
    IN f_id INT  
    )  
BEGIN  
      DECLARE con1 TINYINT DEFAULT 0;  
      DECLARE con1 CONDITION FOR SQLSTATE '23000';  
      DECLARE CONTINUE HANDLER FOR con1  
      BEGIN  
        resignal SET schema_name = 'action',   
             table_name = 'action_tb',   
             message_text = 'Duplicated!',  
                     _errno = 22;  
 
      END;  
      INSERT INTO user_info VALUES (f_id);  
    END$$  
  
DELIMITER ;  
 
CALL sp_signal1(12);
  www.2cto.com  
Query : call sp_signal1(12)
Error Code : 22
Duplicated!
Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000
 
 

以上是“MySQL 5.5新增SIGNAL异常处理怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 5.5新增SIGNAL异常处理怎么用

本文链接: https://lsjlt.com/news/71507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL 5.5新增SIGNAL异常处理怎么用
    这篇文章主要介绍MySQL 5.5新增SIGNAL异常处理怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL 5.5新增SIGNAL异常处理 MySQL 从 5...
    99+
    2024-04-02
  • mysql innodb异常怎么处理
    本文小编为大家详细介绍“mysql innodb异常怎么处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql innodb异常怎么处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、回退重新装mysq...
    99+
    2023-06-27
  • mysql异常捕获怎么处理
    mysql异常处理包括两种方法:1. try-catch 块;2. 使用 mysqli_errno 和 mysqli_error 函数。异常处理步骤通常包括:1. 捕获异常;2. 检查错...
    99+
    2024-05-30
    mysql
  • MySQL中怎么定义和处理异常
    今天就跟大家聊聊有关MySQL中怎么定义和处理异常,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1 异常定义1.1 语法DECLARE c...
    99+
    2024-04-02
  • rpc调用异常怎么处理
    处理 RPC 调用异常的方法取决于具体的情况和所使用的 RPC 框架。以下是一些常见的处理方法: 异常捕获和处理:在发起 RPC...
    99+
    2023-10-23
    rpc
  • C#异常怎么处理
    这篇文章主要讲解了“C#异常怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#异常怎么处理”吧!异常是程序运行中发生的错误,C#异常处理是程序设计的一部分。在C#异常处理是通过Exc...
    99+
    2023-06-17
  • golang怎么处理异常
    Go语言是一门支持面向对象编程的静态类型编程语言,和其他的编程语言相比,它的确切名称应该是"Go"而非"golang"。Go语言始于2007年,是由Google公司开发的一种开源语言。在Go语言中,异常被称为“panic”,并不像Java或...
    99+
    2023-05-15
  • 怎么处理MySQL数据库相关异常
    怎么处理MySQL数据库相关异常,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  大家都明白,任何数据库在使用过程中,发生异常是不可避免的。下...
    99+
    2024-04-02
  • Java异常处理try catch怎么用
    这篇文章将为大家详细讲解有关Java异常处理try catch怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们编译运行程序出错的时候,编译器就会抛出异常。抛出异常要比终止程序灵活许多,这...
    99+
    2023-06-21
  • C#中怎么处理异常
    在C#中,可以使用try-catch语句来处理异常。try块中包含可能会抛出异常的代码,而catch块中包含处理异常的代码。示例代码...
    99+
    2024-04-03
    C#
  • Java7异常处理的新特性是什么
    本篇内容介绍了“Java7异常处理的新特性是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在程序中,错误可能产生于程序员没有预料的各种情...
    99+
    2023-06-17
  • C++ 技术中的异常处理:如何使用异常处理来增强应用程序的健壮性?
    异常处理是 c++++ 中用于处理意外事件的强大机制,防止程序因未预期的错误而崩溃。异常处理机制基于 try-catch 块,异常发生时控制流跳转到 catch 块处理异常。异常通常表示...
    99+
    2024-05-09
    c++ 异常处理
  • VB.NET结构化异常处理怎么用
    这篇文章主要介绍VB.NET结构化异常处理怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述 相较于VB语言来说,VB.NET引入了许多特色。其中最值得注意的变化就是引入了VB.NET结构化异常处理。虽然VB....
    99+
    2023-06-17
  • 怎么进行Oracle异常处理
    这篇文章给大家介绍怎么进行Oracle异常处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、异常的优点      如果没有异常,在程序中,应当检查每个命令的成功...
    99+
    2024-04-02
  • 怎么在Springboot中处理异常
    这篇文章将为大家详细讲解有关怎么在Springboot中处理异常,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、制造异常报500错误。在大量的代码中很难找到错误二、统一异常处理添加异常处理...
    99+
    2023-06-15
  • 怎么处理Java中的异常
    这篇文章主要讲解了“怎么处理Java中的异常”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么处理Java中的异常”吧!异常与error介绍下面还是先让我们来看一下基本概念吧! 异...
    99+
    2023-06-16
  • python异常传播怎么处理
    这篇文章主要讲解了“python异常传播怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python异常传播怎么处理”吧!1、异常的传播当在函数中出现异常时,如果在函数中对异常进行了处...
    99+
    2023-06-29
  • 怎么在Java8中处理异常
    本篇内容介绍了“怎么在Java8中处理异常”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们都知道,Java 异常分为检查异常和非检查异常。...
    99+
    2023-06-04
  • .NET4中异常处理的新机制是什么
    本篇内容介绍了“.NET4中异常处理的新机制是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在.NET 4.0之后,CLR将会区别出一些...
    99+
    2023-06-17
  • MySQL中异常的客户端连接怎么处理
    这篇文章主要介绍MySQL中异常的客户端连接怎么处理,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景1: 程序反馈数据库出现了max_connection的错误, 导致client...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作