Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL
來源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-09 19:14:53
Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL
Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL:有這樣一個(gè)需求,要求在mysql存儲(chǔ)過程中使用到事務(wù),而且執(zhí)行的是動(dòng)態(tài)的sql語句代碼如下:BEGIN DECLARE in_data TEXT; /** 標(biāo)記是否出錯(cuò) */ DECLARE errno INT DEFAULT '0'; /** 如果出現(xiàn)sql異常,則將t_error設(shè)置為1后繼續(xù)執(zhí)
導(dǎo)讀Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL:有這樣一個(gè)需求,要求在mysql存儲(chǔ)過程中使用到事務(wù),而且執(zhí)行的是動(dòng)態(tài)的sql語句代碼如下:BEGIN DECLARE in_data TEXT; /** 標(biāo)記是否出錯(cuò) */ DECLARE errno INT DEFAULT '0'; /** 如果出現(xiàn)sql異常,則將t_error設(shè)置為1后繼續(xù)執(zhí)
有這樣一個(gè)需求,要求在mysql存儲(chǔ)過程中使用到事務(wù),而且執(zhí)行的是動(dòng)態(tài)的sql語句
代碼如下:
BEGIN DECLARE in_data TEXT; /** 標(biāo)記是否出錯(cuò) */ DECLARE errno INT DEFAULT '0'; /** 如果出現(xiàn)sql異常,則將t_error設(shè)置為1后繼續(xù)執(zhí)行后面的操作 */ DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ROLLBACK;SET errno = 1; END; START TRANSACTION; -- 傳入的語句處理過程 PREPARE stmt FROM @in_data; EXECUTE stmt; IF (errno =1) THEN ROLLBACK; ELSE COMMIT; END IF; SELECT errno;END
調(diào)用 :
SET @in_data = 'insert into accounts (`userid`,`password`) value (122222222,2),(22222,11)';CALL SYN_Updata(@in_data);
其實(shí)這個(gè)存儲(chǔ)過程只要是用到事務(wù)的地方都可以用到,因?yàn)閳?zhí)行的條件是動(dòng)態(tài)的。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL
Mysql存儲(chǔ)過程包含事務(wù),且傳入sql數(shù)據(jù)執(zhí)行_MySQL:有這樣一個(gè)需求,要求在mysql存儲(chǔ)過程中使用到事務(wù),而且執(zhí)行的是動(dòng)態(tài)的sql語句代碼如下:BEGIN DECLARE in_data TEXT; /** 標(biāo)記是否出錯(cuò) */ DECLARE errno INT DEFAULT '0'; /** 如果出現(xiàn)sql異常,則將t_error設(shè)置為1后繼續(xù)執(zhí)