sql >> データベース >  >> RDS >> Mysql

MySQLストアド関数でgotoラベルを使用する方法

    コードを逆方向にジャンプするなど、MySQLで実装できないGOTOケースがあります(これも良いことです)。

    ただし、すべてから最後の一連のステートメントにジャンプしたい例のように、コードを囲むBEGIN/ENDブロックを作成してジャンプできます。

    aBlock:BEGIN
        if (action = 'D') then
            if (rowcount > 0) then
                DELETE FROM datatable WHERE id = 2;      
            else
               SET p=CONCAT('Can not delete',@b);
               LEAVE aBlock;
            end if;
        end if;
    END aBlock;
    return 0;
    

    コードはネストされたIFであるため、指定されたコードでは構成は不要です。ただし、LOOP / WHILE / REPEATの方が、ループ内からの複数のRETURNステートメントを回避し、最終処理を統合する方が理にかなっています(TRY / FINALLYに少し似ています)。



    1. ビットマップ画像とテキストを保存するためにSQLiteデータベースを実装する方法は?

    2. EBSR12の開始および停止スクリプト

    3. MySql Last Insert ID、Connector .net

    4. 1つのSQLクエリに複数の行を挿入しますか?