原文: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