首页 > 数据库 >MySql执行异常处理、MySql事务回滚和提交,判断有异常则回滚。

MySql执行异常处理、MySql事务回滚和提交,判断有异常则回滚。

时间:2023-10-19 15:13:24浏览次数:29  
标签:回滚 err -- MySql sql 异常

示例

DELIMITER $$
DROP PROCEDURE IF EXISTS sp_test1 $$
CREATE PROCEDURE sp_test1()
top:BEGIN
  -- 错误标记,当sql执行出错的时候,设置标记等于1。
    DECLARE _err INT DEFAULT 0;
    -- 错误标记处理,放到最后再声明,要放到游标后面。
    -- 不然会报错:Variable or condition declaration after cursor or handler declaration
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
    
    -- 开始事务
    START TRANSACTION;
    
    -- 执行任意sql语句,如果执行的sql语句任何一个发生异常(比如主键重复),则_err都会被设置为1。
    INSERT INTO stu(id,first_name,birth)SELECT 1,'a',NOW();
    
    -- 判断异常状态,回滚和提交。
    IF(_err = 1) 
    THEN
        ROLLBACK;
    ELSE
        COMMIT;
    END IF;
    
END $$
DELIMITER ;

 

标签:回滚,err,--,MySql,sql,异常
From: https://www.cnblogs.com/xsj1989/p/17774735.html

相关文章

  • flex and bison usage in mysql
    queryparsinginmysqlmysqlsourcecodeversion:8.0.34(fromMYSQL_VERSIONfile)Thisanarticlefromquestionstounderstandings.whichfiledoesmysqlusetodefinesqlgrammar?sql/sql_yacc.yywhatisthenameyyparsereplacedwithinmysql?Sear......
  • k8s中服务器重启后,provisioner制备区异常
    kubectllogs-fopenebs-localpv-provisioner-77886fbccd-fbv8k-nopenebsF101906:43:35.9089841provisioner.go:247]Errorgettingserverversion:Get"https://10.96.0.1:443/version?timeout=32s":dialtcp10.96.0.1:443:i/otimeout......
  • MyBatis Plus 达梦数据库 分页查询异常问题
    MyBatisPlus达梦数据库分页查询异常问题 一、问题背景根据博客《SpringBootMyBatisPlus整合达梦数据库》中提到分页查询问题,如果没有配置 MybatisPlusConfig.java文件,会出现如下现象:数据表PRODUCTION.PRODUCT_CATEGORY中的数据如下: 调用如下查询接口:http:/......
  • mysql三种方案优化 2000w 数据大表
    摘录自当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题数据的插入,查询时长较长后续业务需求的扩展在表中新增字段影响较大表中的数据并不是所有的都为有效数据需求只查询时间区间内的评估表数据体量我们可以从表容量/磁......
  • mysql 日期时间值中获取年、月、日等部分日期或时间值
    在MySQL中,可以使用一系列内置函数来从日期时间值中获取年、月、日等部分日期或时间值。以下是一些常用的函数:YEAR():用于从日期时间值中提取年份。例如,SELECTYEAR('2023-06-12')将返回2023。MONTH():用于从日期时间值中提取月份。例如,SELECTMONTH('2023-06-12')将返回6。DAY():......
  • mysql-备份还原
    mysqldump备份与恢复#导出的备份文件就是数据库脚本文件mysqldump-uroot-p[密码]--databases库名1[库名2]…>/备份路径/备份文件名.sql例:mysqldump-uroot-p123456--databasesschool>/opt/school.sqlmysqldump-uroot-p123456--databasesmysqlschool>/op......
  • Sql CLR 异常总结
    1.执行中发生报错:“Twostringstobecomparedhavedifferentcollation”  ,在字符串(==)比较过程抛的异常后来发现是参数传入是SqlString类型,直接和字符串比较(==),但是 部署db的 编码格式(Collation):Chinese_PRC_CI_AS ,而  数据源的  Collation:SQL_L......
  • 研发日常踩坑-Mysql分页数据重复 | 京东云技术团队
    踩坑描述:写分页查询接口,orderby和limit混用的时候,出现了排序的混乱情况在进行第N页查询时,出现与第一前面页码的数据一样的记录。问题在MySQL中分页查询,我们经常会用limit,如:limit(0,20)表示查询第一页的20条数据,limit(20,20)表示查询第二页的数据。业务上我们通常也会在分页的时......
  • mysql 导入数据
    使用navicat工具(mysqlworkbench不好用,大文件时打不开,导入数据也慢),选中数据库,右击选中“运行SQL文件”,找到文件开始执行即可 ......
  • 关于 npoi 的 DateUtil.IsCellDateFormatted(cell) 为true,取cell.DateCellValue却报
    NPOI中数字和日期都是NUMERIC类型的,这里对其进行判断是否是日期类型所以当 DateUtil.IsCellDateFormatted为true时,理论是应该可以取到  cell.DateCellValue但实际上,cell.DateCellValue可能会报异常,而取 cell.NumericCellValue却是正常的,HSSFWorkbook是excel2007以前......