- A.4.1.MySQL 5.6 はストアドプロシージャーおよびストアドファンクションをサポートしていますか。
- A.4.2.MySQL のストアドプロシージャーおよびストアドファンクションについてのドキュメントはどこにありますか。
- A.4.3.MySQL のストアドプロシージャーのディスカッションフォーラムはありますか。
- A.4.4.ストアドプロシージャーの ANSI SQL 2003 仕様はどこにありますか。
- A.4.5.ストアドルーチンを管理するにはどうすればよいですか。
- A.4.6.特定のデータベースのすべてのストアドプロシージャーおよびストアドファンクションを表示する方法はありますか。
- A.4.7.ストアドプロシージャーはどこに格納されますか。
- A.4.8.ストアドプロシージャーまたはストアドファンクションをパッケージにグループ化することはできますか。
- A.4.9.ストアドプロシージャーは別のストアドプロシージャーを呼び出すことができますか。
- A.4.10.ストアドプロシージャーはトリガーを呼び出すことができますか。
- A.4.11.ストアドプロシージャーはテーブルにアクセスできますか。
- A.4.12.ストアドプロシージャーには、アプリケーションエラーを発生させるステートメントはありますか。
- A.4.13.ストアドプロシージャーには例外処理はありますか。
- A.4.14.MySQL 5.6 のストアドルーチンは結果セットを返すことができますか。
- A.4.15.ストアドプロシージャーで WITH RECOMPILE はサポートされますか。
- A.4.16.mod_plsql を Apache のゲートウェイとして使用してデータベース内のストアドプロシージャーと直接やり取りするのと同等の機能は MySQL にありますか。
- A.4.17.ストアドプロシージャーに入力として配列を渡すことはできますか。
- A.4.18.ストアドプロシージャーに IN パラメータとしてカーソルを渡すことはできますか。
- A.4.19.ストアドプロシージャーの OUT パラメータとしてカーソルを返すことはできますか。
- A.4.20.デバッグのために、ストアドルーチン内の変数の値を出力できますか。
- A.4.21.ストアドプロシージャー内でトランザクションをコミットまたはロールバックできますか。
- A.4.22.MySQL 5.6 のストアドプロシージャーおよびストアドファンクションはレプリケーションで動作しますか。
- A.4.23.マスターサーバーで作成されたストアドプロシージャーおよびストアドファンクションはスレーブにレプリケートされますか。
- A.4.24.ストアドプロシージャーおよびストアドファンクション内で実行されたアクションはどのようにレプリケートされますか。
- A.4.25.レプリケーションでストアドプロシージャーおよびストアドファンクションを使用するための特別なセキュリティー要件はありますか。
- A.4.26.ストアドプロシージャーおよびストアドファンクションのアクションをレプリケートする場合の制限は何ですか。
- A.4.27。前述の制限は MySQL のポイントインタイムリカバリを行う機能に影響しますか。
- A.4.28.前述の制限を修正するために何が行われていますか。
A.4.1. |
MySQL 5.6 はストアドプロシージャーおよびストアドファンクションをサポートしていますか。 |
はい。MySQL 5.6 は 2 種類のストアドルーチン (ストアドプロシージャーおよびストアドファンクション) をサポートしています。 |
|
A.4.2. |
MySQL のストアドプロシージャーおよびストアドファンクションについてのドキュメントはどこにありますか。 |
セクション20.2「ストアドルーチン (プロシージャーと関数) の使用」を参照してください。 |
|
A.4.3. |
MySQL のストアドプロシージャーのディスカッションフォーラムはありますか。 |
はい。https://forums.mysql.com/list.php?98を参照してください。 |
|
A.4.4. |
ストアドプロシージャーの ANSI SQL 2003 仕様はどこにありますか。 |
残念ながら、正式な仕様は無料では入手できません (ANSI は有料で販売しています)。ただし、標準の包括的な概要を説明した (ストアドプロシージャーの説明を含む)、Peter Gulutzan および Trudy Pelzer 著の『SQL-99 Complete, Really』などの本があります。 |
|
A.4.5. |
ストアドルーチンを管理するにはどうすればよいですか。 |
ストアドルーチンに明快な命名スキームを使用することはよい管理方法です。ストアドプロシージャーは、 |
|
A.4.6. |
特定のデータベースのすべてのストアドプロシージャーおよびストアドファンクションを表示する方法はありますか。 |
はい。
詳細は、セクション21.18「INFORMATION_SCHEMA ROUTINES テーブル」を参照してください。 ストアドルーチンの本体は、 |
|
A.4.7. |
ストアドプロシージャーはどこに格納されますか。 |
|
|
A.4.8. |
ストアドプロシージャーまたはストアドファンクションをパッケージにグループ化することはできますか。 |
いいえ。これは MySQL 5.6 ではサポートされません。 |
|
A.4.9. |
ストアドプロシージャーは別のストアドプロシージャーを呼び出すことができますか。 |
はい。 |
|
A.4.10. |
ストアドプロシージャーはトリガーを呼び出すことができますか。 |
ストアドプロシージャーでは,トリガーが実行される |
|
A.4.11. |
ストアドプロシージャーはテーブルにアクセスできますか。 |
はい。ストアドプロシージャーは、必要に応じて 1 つ以上のテーブルにアクセスできます。 |
|
A.4.12. |
ストアドプロシージャーには、アプリケーションエラーを発生させるステートメントはありますか。 |
はい。MySQL 5.6 には、SQL 標準の |
|
A.4.13. |
ストアドプロシージャーには例外処理はありますか。 |
MySQL には、SQL 標準に従った |
|
A.4.14. |
MySQL 5.6 のストアドルーチンは結果セットを返すことができますか。 |
ストアドプロシージャーは返すことができますが、ストアドファンクションは返すことができません。ストアドプロシージャー内で通常の |
|
A.4.15. |
ストアドプロシージャーで |
MySQL 5.6 にはありません。 |
|
A.4.16. |
|
MySQL 5.6 には同等の機能はありません。 |
|
A.4.17. |
ストアドプロシージャーに入力として配列を渡すことはできますか。 |
MySQL 5.6 にはありません。 |
|
A.4.18. |
ストアドプロシージャーに |
MySQL 5.6 では、カーソルはストアドプロシージャーの内部でのみ使用できます。 |
|
A.4.19. |
ストアドプロシージャーの |
MySQL 5.6 では、カーソルはストアドプロシージャーの内部でのみ使用できます。ただし、 |
|
A.4.20. |
デバッグのために、ストアドルーチン内の変数の値を出力できますか。 |
はい。これは、ストアドプロシージャーでは行うことができますが、ストアドファンクションでは行うことはできません。ストアドプロシージャー内で通常の |
|
A.4.21. |
ストアドプロシージャー内でトランザクションをコミットまたはロールバックできますか。 |
はい。ただし、ストアドファンクション内でトランザクション操作を実行することはできません。 |
|
A.4.22. |
MySQL 5.6 のストアドプロシージャーおよびストアドファンクションはレプリケーションで動作しますか。 |
はい。ストアドプロシージャーおよびストアドファンクションで実行された通常のアクションは、マスター MySQL サーバーからスレーブサーバーにレプリケートされます。セクション20.7「ストアドプログラムのバイナリロギング」で詳しく説明されているいくつかの制限があります。 |
|
A.4.23. |
マスターサーバーで作成されたストアドプロシージャーおよびストアドファンクションはスレーブにレプリケートされますか。 |
はい。マスターサーバーで通常の DDL ステートメントを使用して実行されたストアドプロシージャーおよびストアドファンクションの作成はスレーブにレプリケートされるため、オブジェクトは両方のサーバーに存在します。ストアドプロシージャーおよびストアドファンクションに対する |
|
A.4.24. |
ストアドプロシージャーおよびストアドファンクション内で実行されたアクションはどのようにレプリケートされますか。 |
MySQL は、ストアドプロシージャーで行われた各 DML イベントを記録し、それらの個々のアクションをスレーブサーバーにレプリケートします。ストアドプロシージャーを実行するために行われた実際の呼び出しはレプリケートされません。 データを変更するストアドファンクションは、各ファンクション内で行われた DML イベントとしてではなく、関数呼び出しとしてログ記録されます。 |
|
A.4.25. |
レプリケーションでストアドプロシージャーおよびストアドファンクションを使用するための特別なセキュリティー要件はありますか。 |
はい。スレーブサーバーにはマスターのバイナリログから読み取ったステートメントを実行する権限があるため、レプリケーションでストアドファンクションを使用するための特殊なセキュリティー制約が存在します。レプリケーションまたは一般のバイナリロギング (ポイントインタイムリカバリのための) がアクティブである場合、MySQL の DBA には選択できるセキュリティーオプションが 2 つあります。
|
|
A.4.26. |
ストアドプロシージャーおよびストアドファンクションのアクションをレプリケートする場合の制限は何ですか。 |
ストアドプロシージャーに埋め込まれている決定性のない (ランダムな) アクションまたは時間ベースのアクションは、正しくレプリケートされないことがあります。その特性により、ランダムに生成された結果は予測できず、正確に再現できません。このため、スレーブにレプリケートされたランダムアクションは、マスターで実行されたアクションとは異なります。ストアドファンクションを また、時間ベースのアクションはスレーブで再現できません。ストアドプロシージャーのそのようなアクションのタイミングは、レプリケーションに使用されるバイナリログを介して再現できないためです。バイナリログには、DML イベントのみが記録され、タイミング制約は含まれていません。 最後に、非トランザクションテーブルで大きい DML アクション (一括挿入など) 中にエラーが発生した場合、マスターは DML アクティビティーによって部分的に更新されたがスレーブが更新されず、レプリケーションの問題が発生することがあります。回避策は、関数の DML アクションを |
|
A.4.27。 |
前述の制限は MySQL のポイントインタイムリカバリを行う機能に影響しますか。 |
レプリケーションに影響する制限が、ポイントインタイムリカバリに同様に影響します。 |
|
A.4.28. |
前述の制限を修正するために何が行われていますか。 |
ステートメントベースのレプリケーションまたは行ベースのレプリケーションのいずれかを選択できます。元のレプリケーションの実装は、ステートメントベースのバイナリロギングに基づいています。行ベースのバイナリロギングによって、前述の制限が解決されます。 複合レプリケーションも使用できます ( 追加情報については、セクション17.1.2「レプリケーション形式」を参照してください。 |