MySQL 8.0 リファレンスマニュアル


13.6.6.3 カーソル FETCH ステートメント

FETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...

このステートメントは、指定されたカーソル (これは開いている必要があります) に関連付けられた SELECT ステートメントの次の行をフェッチし、そのカーソルのポインタを進めます。 行が存在する場合は、フェッチされたカラムが指定された変数に格納されます。 SELECT ステートメントによって取得されるカラムの数が、FETCH ステートメントで指定された出力変数の数に一致している必要があります。

それ以上の行を取得できない場合は、SQLSTATE 値 '02000' で「データなし」状況が発生します。 この状況を検出するには、その状況 (または、NOT FOUND 状況) のハンドラを設定できます。 例については、セクション13.6.6「カーソル」を参照してください。

SELECT や別の FETCH などの別の操作でも、同じ条件を発生させることでハンドラが実行される場合があることに注意してください。 条件が発生した操作を区別する必要がある場合は、独自のハンドラに関連付けることができるように、操作を独自の BEGIN ... END ブロック内に配置します。


関連キーワード:  ステートメント, CREATE, TABLE, DROP, カーソル, サブクエリー, FUNCTION, SLAVE, 関数, REPLICA