MySQLは、ストアドプロシージャを作成カーソルカーソルループの更新を使用します

カーソル(カーソル)を使用します


1.カーソルを宣言


select_statementにFOR cursor_nameはCURSORを宣言

この文は、カーソルを宣言します。カーソルが複数のサブルーチンで定義されてもよいが、各ブロックのカーソルに一意の名前を持たなければなりません。カーソルを宣言した後、単一の操作ですが、INTO句持つことはできませんSELECTステートメントを使用することはできません。


2. OPEN cursor文


OPEN cursor_nameは

このステートメントは、以前に宣言したカーソルをオープンします。


3.カーソルがFETCHステートメント


VAR_NAME [、VAR_NAME] INTOカーソFETCH ...

指定されたオープンカーソルでこの文は、次の行(もしあれば次の行)を読み込み、カーソルポインタを進めます。


4.カーソルCLOSE文


CLOSE cursor_nameは

文は、以前に開かれたカーソルをクローズします。




あなたは多くの情報を書きますが、常に実行されません前から一瞬熟考した後、確認し、完全に正しいテストし、例を書きました。


以下は、カーソルループ更新操作の例を使用して、作成するストアドプロシージャです。


 

`my`()をCREATE PROCEDURE

ベギン

    / *ローカル変数定義されたDECLARE * /

  援助BIGINTのデフォルト0を宣言する。

  MDSL BIGINTのデフォルトの0を宣言する。

  ストップint型のデフォルトの0を宣言する。

  MDSLとして(SELECT COUNT(area_tb.id)FOR CURカーソルを宣言し、右subbranch_tb.i_subbran_area = area_tb.idにsubbranch_tbに参加area_tbからの補助としてarea_tb.id

ここarea_tb.i_record_status = 0とarea_tb.idによってsubbranch_tb.i_record_status = O基);

 

 SQLSTATE「02000」SET停止=ヌルのハンドラを続ける宣言。

  / *カーソルをオープン* /

OPEN CUR;

/ *カーソルダウン一歩を行くために、値をチェックアウトするには、2つの*定義された2つの変数を支払っ/

MDSL、援助INTO CURをFETCH。

カーソル名は、最大追加するクエリおよび使用の明確である/ *ループ;分離数* /

WHILE DO(ストップがnullではありません)

更新はi_subbran_count = MDSLここID =補助セットarea_tb。

/ * *カーソル下のステップを取ります/

MDSL、援助INTO CURをFETCH。

ENDのWHILE;

CLOSE CUR;

終わり;


最後に、忘れてはいけない:データベース・ユーザーにストアドプロシージャを実行するために付与された権限を接続します


助成金は、「%」@「ユーザ名」に手順のyunzuche.myupdate上で実行します。

交換グループに参加するには、Java、Javaテクノロジのエンジニアの友人の1年から5年を仕事にようこそ:659 270 626は
、高可用性、高同時実行、高い性能と分散、JVMのパフォーマンスチューニングを持つJavaアーキテクチャグループ(春ソース内の無料学習教材を提供MyBatisの、ネッティー、Redisの、カフカ、Mysqlの、より多くの知識飼育係、Tomcatの、ドッカー、ダボ、nginxのとビッグデータインフラストラクチャデータ)自分の学習を強化するために自分の時間の毎分の使用の合理化、再利用しません彼のイデオロギーの怠惰を非表示にするには、「時間がありません」!若い、ハード戦い、自分の将来のアカウントを与えます!

 


おすすめ

転載: blog.51cto.com/14028890/2422698