ストアドプロシージャは、 - に応じて別のテーブルにテーブルを更新します

 

別のテーブルの更新にデータテーブルを照会することによって、書き込みに対するMySQLストアドプロシージャ

例えば、{ROLE_ID、role_score} roledata二つのテーブル、scoreinfo {ROLE_ID、スコアが}、あります

次のストアドプロシージャは、カーソルを介して、テーブルがrole_scroeにroledataテーブルの値を更新するscroeクエリ値scoreinfo横切ります

DROP PROCEDURE IFは`proc_updatescore`をEXISTS。
DELIMITER ;; 
DEFINERを= CREATE ``% `` PROCEDURE proc_updatescore`()root` @ 
BEGIN 
	#Routineボディがここに... 

	_idのINTを宣言。
	真のフラグINT DEFAULTを宣言します。
	CHKのINTを宣言。
	scoreinfo FROM SELECT ROLE_ID FOR CUR CURSORを宣言。
	SETフラグ= FALSE、NOT FOUNDのハンドラを続ける宣言します。
	OPEN CUR; 
	
	REPEAT 
	_id INTO CURをFETCH。
	SELECT COUNT(*)roledata.role_id = _id roledata FROM CHK INTO。
	CHK = 1 THEN IF 
	roledataを更新し、SET scoreinfo roledata.role_score =(scoreinfo FROM SELECTスコアWHERE ROLE_ID = _id)WHERE roledata.role_id = _id。
	END IF; 
	フラグUNTIL = FALSE
	ENDのREPEAT;
	CLOSE CUR; 
END 
;; 
DELIMITER;

  

 

おすすめ

転載: www.cnblogs.com/bodboy/p/11319907.html