MySQL5.0.41 でストアド・プロシージャを試す(その2)

さて、今日も遅くなってしまったが、一昨日の続き(こちらのページを教科書に進める)。

ストアド・プロシージャの登録(CREATE)がうまく行かなかったのは、phpMyAdmin の使い方の問題。コマンドライン操作の場合と違って、DELIMITER 構文を使わずフォームでデリミタに使う文字列を指定すれば OK だった(下図を参照)。




しかし、このストアド・プロシージャは、単に連番データを DB に書き込んで行くだけのものだった。

そうやって生成した連番データを使って自動生成した大量のデータを nodes テーブルに書き込み、次いで2点間のエッジをランダムに自動生成して edges テーブルに書き込む。そのノードとエッジのデータを対象として最短経路を求めるというシナリオらしい。サンプルでは 1250行ものデータを生成させているが、とりあえず 250行でテストしてみる。


さてさて、これでサンプルデータが整ったので、いよいよ最短経路を求める部分に入る。

手順:

  1. paths テーブルをつくる
  2. ストアド・プロシージャ shortestPath() を登録(これがノード間の最短距離を求めるもののようだ)
  3. CALL shortestPath(); でストアド・プロシージャを実行
  4. これで paths テーブルに各ノード間の最短距離のデータが書き込まれているはず

ノードが 100個もあると手作業で結果を検証できないので、5個か 10個ぐらいでやってみよう。


とりあえず今日のところはここまで!(もう2時だー)