PREPAREstmt_name
FROMpreparable_stmt
PREPARE
ステートメントはステートメントを準備し、あとでそのステートメントを参照するものによって、名前
stmt_name
を割り当てます。ステートメント名は大文字と小文字を区別しません。preparable_stmt
は文字列直定数、またはステートメントのテキストを含むユーザー変数です。テキストは複数ステートメントではなく、単一
SQL
ステートメントを表さなければいけません。ステートメント内で
「?
」
文字をパラメータマーカーとして使用すると、あとでクエリーを実行するときにデータ値をクエリーにバインドする場所を示すことができます。「?
」
文字は、その文字を文字列値にバインドする場合でも引用符で囲まないでください。パラメータマーカーは、SQL
キーワードや識別子等ではなく、データ値が現れるところでのみ利用することができます。
もし与えられた名前を持つ準備済みステートメントがすでに存在したら、新しいステートメントが準備される前にそれは暗黙的に割り当て解除されます。これは、もし新しいステートメントがエラーを含み準備できないとしたらエラーは返され、与えられた名前のステートメントは存在しない、という意味です。
準備済みステートメントは
EXECUTE
で実行され、DEALLOCATE
PREPARE
で解放されます。
準備済みステートメントのスコープは、そのステートメントが作成されたセッションです。ほかのセッションでは表示できません。
参考例は、項8.7. 「準備済みステートメントのための SQL 構文」 を参照してください。