
〜 MySQL 5.0のストアドプロシージャをチェック 〜
MySQL 5.0最大の目玉はストアドプロシージャである。インストールした5.0を使って、ストアドプロシージャの動作を試してみよう。(編集局)
鶴長 鎮一
MySQLユーザ会
2004/4/20
ストアドプロシージャを使ってみよう
MySQL 5.0最大の目玉は、何といってもストアドプロシージャです。この動作を実際に確かめてみましょう。
例として、以下のサンプルテーブルを用意します。
# mysql -u root |
第1フィールドにID、第2フィールドに地域名、第3フィールドに県名を格納します。皆さんも実際に試せるように、テーブルを作成するregion.sqlファイルを用意しました。ダウンロードしてご利用ください。
データベースは、インストール時に作成されるtestを利用します。
# mysql -u root test < region.sql |
■最も簡単な例
最初に、最も簡単な例を見ていきましょう。
mysql> delimiter // |
| 注:上記の作業をスクリプト化したsimpleproc1.sqlを用意しました。 |
SQLクエリーの最後は「;」を付けますが、ストアドプロシージャを記述する場合、スクリプト中のセンテンスの終了にも「;」を使用するため、区別のためにデリミタ(SQLクエリーの区切り文字)をのようにして変更します。例では「//」としましたが、「|」など、任意の文字で構いません。![]()
でストアドプロシージャを記述します。例では、ストアドプロシージャ「simpleproc1」を作成しています。ストアドプロシージャの記述については特に言及しません。ストアドプロシージャについては、以下を参照してください。![]()
| 参考: | ||
| MySQL社「Stored Procedures and Functions」 http://www.mysql.com/doc/en/Stored_Procedures.html |
||
| 連載:SQL実践講座(19)〜(23) http://www.atmarkit.co.jp/fnetwork/rensai/sql19/sql1.html |
||
simpleproc1は、引数も戻り値もない、最もシンプルな例です。
のように呼び出すことで、SELECT
AREA,PREF FROM REGIONが実行されます。この際、SQLクエリーの終端が「//」に変更されていることをお忘れなく。クエリーは、
のようにして実行します。
mysql> CALL simpleproc1() |
■戻り値を伴う例
次に戻り値を伴う例を見てみましょう。先ほどの例では、CALLされた時点でSELECT AREA,PREF FROM REGIONが実行されましたが、今度はCALLで結果を変数に渡し、SELECTで変数の値を引き出します。
mysql> CREATE PROCEDURE simpleproc2(OUT param1 INT) |
| 注:上記の作業をスクリプト化したsimpleproc2.sqlを用意しました。 |
で、SELECT
* INTOクエリーを使用しています。MySQLはSELECT …… INTO TABLEクエリーに対応しておらず、INSERT INTO
…… TABLEクエリーを代わりに使用しますが、格納先が変数の場合はSELECT …… INTO 変数クエリーが使用可能です。ここでは、REGIONテーブルの総レコード数を変数param1に引き渡しています。![]()
mysql> CALL simpleproc2(@a) |
でCALLLを実行する際は、戻り値を受け取るローカル変数を指定します。こうすることで、ストアドプロシージャの結果が変数@aに格納されます。@aの値を引き出すには、![]()
のようにSELECTクエリーを用います。![]()
| 前編へ |
1/3
|
|
||||||
|
||||||
| Linux Square全記事インデックス |
| Linux Squareフォーラム データベース関連記事 |
| 連載:快速MySQLでデータベースアプリ!(全11回) 軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説 |
|
| 連載:今から始める MySQL入門(連載中) 定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する |
|
| 連載:Oracleマイスター養成講座(全6回) 本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座 |
|
| 連載:DB2マイスター養成講座(全7回) 本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説 |
|
| 特集:エンタープライズ市場に向かうMySQL
5.0[前編] MySQL 5.0の新機能をアルファ版でチェック 1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる |
|
| 特集:Linuxで動くリレーショナルデータベース・カタログ データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい |
|
|
TechTargetジャパン
- 新しい記事も入っていて安心しました (2012/2/7)
Linux Squareのアクセスランキングを公開します。定番の記事ばかりでなく、連載中の記事もよろしくお願いいたします - エラーメッセージをどう扱うか? (2012/2/2)
今回は、スクリプト実行時にエラーが発生したことを知らせるメッセージの扱い方を説明します - ファイルのアップロードを制限する (2012/1/30)
HTTPクライアントがアップロードしてくるファイルの扱いについて解説します。そもそも受け入れる必要があるのか? ということのほかにも、いろいろ設定が必要です - OSに付属するシェルスクリプトを読んで技術を盗む (2012/1/27)
シェルスクリプトマスターに近づくには、他人から技術を盗まなければならない。OS付属のスクリプトから技術を盗もう
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
