MySQL5.0.41 でストアド・プロシージャを試す(その2)
さて、今日も遅くなってしまったが、一昨日の続き(こちらのページを教科書に進める)。
ストアド・プロシージャの登録(CREATE)がうまく行かなかったのは、phpMyAdmin の使い方の問題。コマンドライン操作の場合と違って、DELIMITER 構文を使わずフォームでデリミタに使う文字列を指定すれば OK だった(下図を参照)。
しかし、このストアド・プロシージャは、単に連番データを DB に書き込んで行くだけのものだった。
そうやって生成した連番データを使って自動生成した大量のデータを nodes テーブルに書き込み、次いで2点間のエッジをランダムに自動生成して edges テーブルに書き込む。そのノードとエッジのデータを対象として最短経路を求めるというシナリオらしい。サンプルでは 1250行ものデータを生成させているが、とりあえず 250行でテストしてみる。
さてさて、これでサンプルデータが整ったので、いよいよ最短経路を求める部分に入る。
手順:
- paths テーブルをつくる
- ストアド・プロシージャ shortestPath() を登録(これがノード間の最短距離を求めるもののようだ)
- CALL shortestPath(); でストアド・プロシージャを実行
- これで paths テーブルに各ノード間の最短距離のデータが書き込まれているはず
ノードが 100個もあると手作業で結果を検証できないので、5個か 10個ぐらいでやってみよう。
とりあえず今日のところはここまで!(もう2時だー)