raise error mysql引发异常
来源:互联网 发布:邮件地址搜索软件 编辑:程序博客网 时间:2024/06/12 00:51
一、MySQL 5.5
mysql> SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Custom error';ERROR 1644 (45000): Custom error
二、MySQL 早期版本
DROP PROCEDURE IF EXISTS raise_application_error;DROP PROCEDURE IF EXISTS get_last_custom_error;DROP TABLE IF EXISTS RAISE_ERROR;DELIMITER $$CREATE PROCEDURE raise_application_error(IN CODE INTEGER, IN MESSAGE VARCHAR(255)) SQL SECURITY INVOKER DETERMINISTICBEGIN CREATE TEMPORARY TABLE IF NOT EXISTS RAISE_ERROR(F1 INT NOT NULL); SELECT CODE, MESSAGE INTO @error_code, @error_message; INSERT INTO RAISE_ERROR VALUES(NULL);END;$$CREATE PROCEDURE get_last_custom_error() SQL SECURITY INVOKER DETERMINISTICBEGIN SELECT @error_code, @error_message;END;$$DELIMITER ; 使用如下:CALL raise_application_error(1234, 'Custom message');CALL get_last_custom_error();例子:DROP TABLE IF EXISTS ex1;DROP TRIGGER IF EXISTS ex1_bi;DROP TRIGGER IF EXISTS ex1_bu;CREATE TABLE ex1(only_odd_numbers INT UNSIGNED);DELIMITER $$CREATE TRIGGER ex1_bi BEFORE INSERT ON ex1 FOR EACH ROWBEGIN IF NEW.only_odd_numbers%2 != 0 THEN CALL raise_application_error(3001, 'Not odd number!'); END IF;END$$CREATE TRIGGER ex1_bu BEFORE UPDATE ON ex1 FOR EACH ROWBEGIN IF NEW.only_odd_numbers%2 != 0 THEN CALL raise_application_error(3001, 'Not odd number!'); END IF;END$$DELIMITER ;使用:mysql> INSERT INTO ex1 VALUES(2);Query OK, 1 row affected (0.01 sec)mysql> INSERT INTO ex1 VALUES(3);ERROR 1048 (23000): Column 'F1' cannot be nullmysql> CALL get_last_custom_error();+-------------+-----------------+| @error_code | @error_message |+-------------+-----------------+| 3001 | Not odd number! | +-------------+-----------------+1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)mysql> SELECT \* FROM ex1;+------------------+| only_odd_numbers |+------------------+| 2 | +------------------+1 row in set (0.00 sec)
0 0
- raise error mysql引发异常
- python 引发异常 raise()及异常处理
- Python异常处理——try...except、主动引发异常(raise)、断言(assert)
- Python入门的36个例子 之 34 -> Raise An Error – 自定义异常信息
- Oracle中RAISE异常详解
- Oracle中RAISE异常详解
- Oracle中RAISE异常详解
- delphi raise 语句: 抛出异常
- delphi raise 语句: 抛出异常
- Oracle中RAISE异常详解
- 异常处理try...except、raise
- Python 主动抛异常(raise)
- 异常捕获与自定义raise异常
- 引发异常
- mysql异常错误 ERROR 2002
- mysql异常错误 ERROR 2002
- raise()
- raise()
- 距离变化 图像融合羽化问题
- 20170509 下载劫持/计算机时间/代理服务器/TCP与UDP
- 泛型数组与集合的转换
- commonJs-CMD-AMD的区别和联系
- 在Source Insight中添加对.cc的支持
- raise error mysql引发异常
- 利用位运算实现两个整数的加法运算
- 代理模式详解(包含原理详解)
- Mysql索引会失效的几种情况分析
- 消息队列(2):消息存哪里了?
- 浅谈 MVP in Android
- php使用websocket示例 client 和 server
- win10更新的部分问题——出现错误代码:0x80240439
- 视觉slam学习资料