MySql 事务+异常处理+异常抛出
生活随笔
收集整理的這篇文章主要介紹了
MySql 事务+异常处理+异常抛出
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-- 測試用表
-- innodb 支持事務
CREATE TABLE `tb_test` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(50) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=92 DEFAULT CHARSET=utf8;
?
-- 測試用儲存過程 -- 通過插入相同的主鍵和插入NULL到非空字段中制造異常 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test`() BEGIN-- 如果出現執行異常則結束后繼的執行,并執行begin-end中的處理DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN-- 回滾事務ROLLBACK;-- 獲取錯誤信息GET DIAGNOSTICS CONDITION 1 @p1=RETURNED_SQLSTATE,@p2= MESSAGE_TEXT; -- 借“模擬”拋出異常RESIGNAL SET schema_name = 'mtt_dev', table_name = 'tb_test', message_text = @p2, mysql_errno = @p1;END;START TRANSACTION;INSERT INTO `tb_test`(`name`)VALUES ('name');INSERT INTO `tb_test`(`name`)VALUES (NULL);INSERT INTO `tb_test`(`id`,`name`)VALUES (1,'name2');INSERT INTO `tb_test`(`id`,`name`)VALUES (1,'name3'); COMMIT; END$$DELIMITER ;?
-- 執行 CALL sp_test();?
轉載于:https://www.cnblogs.com/xachary/p/4751263.html
總結
以上是生活随笔為你收集整理的MySql 事务+异常处理+异常抛出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【effective c++读书笔记】【
- 下一篇: 机器学习中的相似性度量 (转)