程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql存儲過程包含事務,且傳入sql數據執行

Mysql存儲過程包含事務,且傳入sql數據執行

編輯:MySQL綜合教程

有這樣一個需求,要求在mysql存儲過程中使用到事務,而且執行的是動態的sql語句

代碼如下:

BEGIN
	DECLARE in_data TEXT;
	
  /** 標記是否出錯 */  
  DECLARE errno INT DEFAULT '0';  
  /** 如果出現sql異常,則將t_error設置為1後繼續執行後面的操作 */    
	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
調用 :
SET @in_data = 'insert into accounts (`userid`,`password`) value (122222222,2),(22222,11)';
CALL SYN_Updata(@in_data);
其實這個存儲過程只要是用到事務的地方都可以用到,因為執行的條件是動態的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved