原文:mysql存储过程中最后有commit和没有commit 是有所不同的。(为测试但是碰到过这个问题)

如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚。如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管了事务,并且由于其他原因导致service代码中产生异常而自动回滚,但此存储过程是不会回滚,因为数据自身的事务已在存储过程执行完毕前提交了, 也就是说此时spring回滚对存储过程的操作是无效的了。 ...

2018-03-14 16:02 0 2299 推荐指数:

查看详情

oracle 中触发器增加存储过程commit问题

触发器无需commit也不能写commit触发器和触发它的DML是同一个事务DML提交了,触发器的操作也提交了,要不就一起回滚了当然,如果你一定要在触发器里写COMMIT那就用自治事务相当于一个事务里的子事务 正常情况下,Oracle规定在触发器中不能运行 ddl语句和commit ...

Thu Aug 18 07:43:00 CST 2016 0 4823
MySQL 存储过程中的变量

• 本地变量可以通过declare语句进行声明• 声明后的变量可以通过select … into var_list进行赋值,或者通过set语句赋值,或者通过定义游标并使用fetch … into va ...

Mon Apr 20 04:34:00 CST 2020 0 1152
mysql 存储过程中limit

1、mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum; 2、mysql的低版本(5.1),存储过程中的limit不能使用变量,编译报错,如下:You have an error in your ...

Sun May 31 01:36:00 CST 2015 0 3380
MySQL存储过程问题

以前没用过MySQL存储过程,第一次写有很多的不习惯,总结如下: 下面是一个最简单的MySQL存储过程,实现两个数相加 delimiter $$ create procedure proc_add(in a int,in b int) begin declare c int ...

Fri Jun 08 05:06:00 CST 2012 4 11786
mysql存储过程中拼接sql解决in的字段类型不匹配问题

一个朋友问我一个问题,他写了一个存储过程,并在存储过程调用了另外一个自定义的函数。该函数返回类型如'1,34,56'的字符串,并将该字符串作为存储过程的select的id条件。 select语句in里的是函数返回的带引号的字符串,而系统表里id字段是整形,所以需要拨去单引号 ...

Fri Jun 02 05:19:00 CST 2017 0 2692
mysql存储过程中 乱码问题解决办法

中文乱码无论在何时都是一个头疼的问题mysql存储过程参数也同样存在这个问题。1、直接使用insert into语句没问题,能够正常插入汉字。2、把insert into语句移到Procedure中后,就无法插入汉字了。在客户端软件中插入的汉字总是为乱码,英文和数字没问题。3、如果在jdbc中 ...

Fri Oct 14 17:05:00 CST 2016 0 5060
mysql数据创建带参的存储过程,并在存储过程中调用另一个存储过程

一.需求:有三张表,分表是学生表,科目表和分数表: 要求:创建一个带输出参数的存储过程,输出的参数有两个,第一个输出参数的值为分数总分/总人数,第二输出参数的值为分数总分*总人数 1.学生表(学生号,学生姓名,学生地址) 2.科目表(科目编码,科目名称) 3.分数表(学生号 ...

Thu Nov 26 00:30:00 CST 2020 0 2399
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM