MySQLコマンドラインビルドストアドプロシージャ

SQLストアド・プロシージャは、次を確立します:
PROCEDUREのproc_variableをCREATE()
ベギン
dec_var_ VARCHAR(100)を宣言。
rep_num int型を宣言します。
EXECUTION_ID_ HAVING COUNT(名_)でACT_RU_VARIABLE名_ = 'yjdqsj' 群からSELECT ID_ためdec_var CURSORを宣言> 1。
OPEN dec_var;
繰り返す
dec_var_ INTO dec_varをFETCH。
ID_ = dec_var_ ACT_RU_VARIABLE。DELETE FROM。
rep_num ENDのREPEAT UNTIL。
CLOSE dec_var;
終わり;
上記のステートメントが直接実行されている場合は、それが最初に遭遇する「;」オーバーで、その後、残りが与えられます。その理由は、デフォルトのmysqlコマンド・ターミネータがセミコロンであるということです、彼らはターミネータを実行する前に修正する必要があります。
MySQLの(ルート@ localhostを:jjsworkflow)>#区切り文字は、コマンド・ターミネータを変更する// //は、(ランダム)であります
MySQLの(ルート@ localhostを:jjsworkflow)>(PROCEDUREのproc_variableをCREATE)
- > BEGIN
- > DECLAREのdec_var_ VARCHAR(100)。
- > DECLAREのrep_num int型。
- > EXECUTION_ID_ HAVING COUNT(名_)> 1 BY ACT_RU_VARIABLE名_ = 'yjdqsj' 群からSELECT ID_ためdec_var CURSORを宣言する。
- > OPEN dec_var。
- > REPEAT
- > dec_var_ INTO dec_varをFETCH。
- > ID_ = dec_var_ ACT_RU_VARIABLE FROM DELETE。
- > rep_numのEND REPEAT UNTIL。
- > CLOSEのdec_var。
- >終了。
- > // ## //エンドの上に宣言されたがために、入力した最後の文を実行します
それは//「」「//一緒に行っ間のパッケージの内容にあります。この変更は、セッションレベルで、障害が発生した後に終了

ます。https://www.cnblogs.com/rockbes/p/3969786.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34380781/article/details/93691955