別のテーブルの更新にデータテーブルを照会することによって、書き込みに対する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;