いよいよエンタープライズシステムと肩を並べるまでに成長したMySQLですが、5.0を使用する際はいくつか注意が必要です。
これまでに紹介したサンプルの変数名は大文字・小文字を区別して記述していますが、MySQLのデフォルトの設定では大文字・小文字を区別しません。
mysql> set @a='Hello MySQL5.0.0' -> // Query OK, 0 rows affected (0.00 sec) mysql> SELECT @a ←宣言どおり小文字 -> // +------------------+ | @a | +------------------+ | Hello MySQL5.0.0 | +------------------+ 1 row in set (0.00 sec) mysql> SELECT @A ←大文字 -> // +------------------+ | @A | +------------------+ | Hello MySQL5.0.0 | ←同じ結果 +------------------+ 1 row in set (0.00 sec)
異なるバージョン間でレプリケーションを行う場合は、互換性に注意する必要があります。5.0がスレーブの場合はマスターを選びませんが、マスターが5.0の場合、使用可能なスレーブは5.0のみです。
|
マスター
|
||||
3.23.33以上 | 4.03以上/4.1 | 5.0.0 | |||
スレーブ | 3.23.33以上 | ○ | × | × | |
4.03以上/4.1 | ○ | ○ | × | ||
5.0.0 | ○ | ○ | ○ | ||
表2 レプリケーション互換表 Replication Compatibility Between MySQL Versions (http://www.mysql.com/doc/en/Replication_Compatibility.html)より |
正常に機能しない構文もいくつかあります(注)。
ストアドプロシージャの記述についてはリファレンスなどのドキュメントを参考にしたいところですが、残念ながらまだ十分というにはほど遠い資料(http://www.mysql.com/doc/en/Stored_Procedures.html)が用意されているのみです。同じSQL:2003準拠のDB2の資料が参考になる場合もありますが、現状ではSQL:2003のドキュメントを簡単に入手できるというわけはありません。MySQL社にはその辺りの整備を期待したいところです。
何にせよ、ストアドプロシージャをサポートしたRDBMSをこうして入手できることが、MySQLの将来に明るい兆しをもたらしています。今後トリガーが実装されれば、ストアドプロシージャの活用も多くなることでしょう。2004年はMySQL躍進の年となりそうです。
Copyright © ITmedia, Inc. All Rights Reserved.