在我的後台系統中,今天需要使用到儲存過程。儲存過程還真沒寫過,今天就寫了個儲存過程。使用在後台中。
其實這個介面功能 是涉及幾張表的修改,刪除,新增的。就寫個乙個儲存過程。
儲存過程:
1create
procedure `sp_combine_admin_group`(in `group_id1` int(11), in `group_id2` int(11),in `admin_user_id` int(11),in `group_name` varchar(64),in `description` varchar(1024), out `t_error` int(11))2
begin
3declare new_group_id int(11);4
declare
continue handler for sqlexception set t_error=
0;
5set t_error =1;
6 start transaction;7
insert
into admin_group (`group_name`,`description`) values
( group_name,description);
8set new_group_id =
last_insert_id();
9update group_special_power set group_id= new_group_id where group_id =group_id1 or group_id=
group_id2;
10update group_menu_power set group_id= new_group_id where group_id =group_id1 or group_id=
group_id2;
11update group_hospital_power set group_id= new_group_id where group_id =group_id1 or group_id=
group_id2;
12update admin_user set is_admin=
0 , admin_group_id=new_group_id where admin_group_id =group_id1 or admin_group_id=
group_id2;
13update admin_user set is_admin=
1where id=
admin_user_id;
14delete
from admin_group where id =group_id1 or id=
group_id2;
15if t_error =
0then
16rollback
; 17
else
18commit
; 19
endif
; 20
end;
1<
insert
id="insertadmingroupcombine"
parametertype
="org.system.entity.admin.admingroup"
usegeneratedkeys
="true"
keycolumn
="id"
statementtype
="callable"
>2,
4#,5#,
6
#,7 #,8
#)}9
insert
>
Mybatis呼叫mysql的儲存過程
呼叫帶有引數的儲存過程,mode代表引數在儲存過程中的方式,是輸入值還是輸出值 in 和out必須大寫,否則系統找不到parametermode.in 在這裡插入描述 在sql語句結束處必須加上分號,否則報錯 mysql delimiter mysql create procedure pro co...
mybatis註解方式呼叫mysql儲存過程
spring boot mybatis service controller 需求 隨機返回某一資料表中列舉型別的屬性的某乙個值給後台。具體來說,假設資料庫中有乙個表名為 test 的資料表,其中有一屬性名為major的屬性,這一屬性為列舉型別,希望能夠隨機返回其中的某乙個值。資料表名以及屬性名均為...
php PDO呼叫多個結果集的mysql儲存過程
之前寫過了 如何通過 php 取得 mysql procedure 結果 不過按照那種方法還不能適應多結果集的情況。所謂的多結果集,就是指在儲存過程中,有多次 select 查詢,行程多個結果集。解決的辦法還是用 mysqli 提供的函式 mysqli multi query 來做,如下例 mysq...