
〜 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ジャパン)
- natテーブルを利用したLinuxルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |






