mysql:9729
From: <takeshi@xxxxxxxxxx>
Date: Thu, 01 Jul 2004 11:40:04 +0900
Subject: [mysql 09729] Re: MySQL 4.1.2 の char と日本語
村上です。 At Tue, 29 Jun 2004 18:27:07 +0900 (JST), Hirofumi Fujiwara wrote: > > 藤原です。 > 実際に、テーブルを作ってテストしてみました。 > > ALTERしても、以前から入っているデータはそのまま長くても入ったままで > した。 > 新たに入れたり変更しようとした場合にだけ、新しく解釈された長さで切ら > れますね。 そうなんです。 見た瞬間に「んん?」と思ってしまいます。 逆に 4.1 で char(255) で作ったテーブルを、4.0, 3.23 でアクセスさせると これまた「え!?」な状態です。 > > > 1. で確認して、必要なら ALTERするので通常は充分と思います。 > > > > > > たくさんテーブルができている場合もあるだろうから、指定したデータベー > > > スの全テーブル(または指定のテーブル)について、確認する手段の提供が > > > 欲しいです。 > > > > SHOW TABLE STATUS; で出てくれればうれしいかな。 > > > > SQL で確認できれば、変換スクリプトも簡単に用意できそう。 > > 古いバージョンは、バイト単位で、新しいのが文字単位になっています。安 > 全を期せば、8 と書かれていたものは、新しい方でも 8 にすることでしょ > う。 > > しかし、そうすると無駄も多くなるし、レコードの長さが長くなり過ぎて、 > そちらの制限に引っ掛かってしまう場合も発生しかねませんね。 > > できるだけ効率よく作ろうとすると、実際に入る文字数に合わせるべきでしょ > うから、自動は難しいのではないでしょうか。 サーバーが自動で変換することは、私は考えていません。 DB 管理者が、手動で変換する方がいいと考えています。 単純に shell でも Ruby でも、スクリプトを書けばいいと。 そのスクリプトの例が ML にでも MyNA の web などにでもあれば、 スクリプトが無いとあるとじゃ大違い、と考えています スクリプトは簡単なものでいいと考えています。存在することが大事。 スクリプトでの判定方法ですが、 SHOW TABLE STATUS; に、ver という項目を付けて、そこに frm のバージョン番号を出すように 開発者側に投げておきました。 返ってくる数値や項目名はどうなるかは未定ですが、 SHOW TABLE STATUS; .... |ver| .....| 7| の結果を見ればいいということです。 スクリプトでの処理は、 SHOW TABLE STATUS SHOW CREATE TABLE ALTER TABLE する。 ALTER の時の char(m) の長さの計算は、 ujis の時は、m = (n + 1) * 3 sjis の時は、m = (n + 1) * 2 ただし n は 4.1 で表示されたchar() の値で、これは 4.1 未満のテーブルの状態 m は 変換後の値 m は最大で 255 とすればいいと思っています。 微調整は、DB 設計者が行う、と。 Warning を出す件ですが、 Warning は、私の方からは、全てのクエリ実行時に出して欲しいという 話を投げましたが、 開発側は、全てには Warning を出したくないらしくて Warning は限定されたクエリでしか出ないようになる雰囲気です。 # そりゃ、1バイトしか使っていない人にはうっとおしいのはわかるが、 # 仕様が大きく違うので出した方がいいぞ ================ 村上 takeshi@xxxxxxxxxx
9539 2004-06-07 13:23 ["Ryuichiro Munechika] MySQLの問題点(PostgreSQLカンファレンスにて) 9540 2004-06-07 13:40 ┣[Hidekazu Ikeda <hike] 9542 2004-06-07 17:01 ┃┗["Ryuichiro Munechika] 9543 2004-06-07 17:08 ┃ ┣[<yasuyuki@xxxxxxxxxx] 9544 2004-06-07 17:38 ┃ ┃┗["Ryuichiro Munechika] 9545 2004-06-07 18:09 ┃ ┃ ┗[<yasuyuki@xxxxxxxxxx] 9553 2004-06-07 21:22 ┃ ┃ ┣["Ryuichiro Munechika] 9555 2004-06-07 22:02 ┃ ┃ ┗[UNO Shintaro <uno@xx] 9546 2004-06-07 18:55 ┃ ┗[Hidekazu Ikeda <hike] 9552 2004-06-07 21:19 ┃ ┗["Ryuichiro Munechika] 9549 2004-06-07 20:46 ┣[<takeshi@xxxxxxxxxx>] 9551 2004-06-07 21:16 ┃┗["Ryuichiro Munechika] 9563 2004-06-07 23:44 ┃ ┗[Sumito_Oda <oda@xxxx] 9554 2004-06-07 21:26 ┣[とみたまさひろ <tomm] 9557 2004-06-07 22:12 ┃┣[<takeshi@xxxxxxxxxx>] 9558 2004-06-07 22:22 ┃┣["TAKT Co.,ltd." <t@x] 9562 2004-06-07 23:38 ┃┃┗[<takeshi@xxxxxxxxxx>] Re: MySQL 4.1.2 の日本語の扱い(Re: MySQLの問題点) 9579 2004-06-09 08:32 ┃┃ ┣[Yukihiro KAWADA <kaw] 9626 2004-06-13 18:18 ┃┃ ┣[Hirofumi Fujiwara <f] Re: MySQL 4.1.2 の日本語の扱い 9688 2004-06-18 10:02 ┃┃ ┗[<takeshi@xxxxxxxxxx>] MySQL 4.1.2 の char と日本語 (Re: MySQL 4.1.2 の日本語の扱い) 9700 2004-06-23 09:47 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9702 2004-06-23 10:39 ┃┃ ┗[Hirofumi Fujiwara <f] Re: MySQL 4.1.2 の char と日本語 9703 2004-06-23 10:57 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9720 2004-06-29 18:27 ┃┃ ┗[Hirofumi Fujiwara <f] -> 9729 2004-07-01 11:40 ┃┃ ┣[<takeshi@xxxxxxxxxx>] 9733 2004-07-01 16:24 ┃┃ ┃┗[Hirofumi Fujiwara <f] 9730 2004-07-01 12:47 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 4.1 と UTF-8 (Re: MySQL 4.1.2 の char と日本語) 9732 2004-07-01 15:04 ┃┃ ┣[IWAMURO Motonori <vm] 9735 2004-07-01 19:48 ┃┃ ┃┗[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9758 2004-07-02 22:26 ┃┃ ┃ ┣[<takeshi@xxxxxxxxxx>] 9760 2004-07-02 22:39 ┃┃ ┃ ┃┗["Ryuichiro Munechika] 9768 2004-07-03 18:06 ┃┃ ┃ ┃ ┗[Hirofumi Fujiwara <f] 9764 2004-07-03 06:24 ┃┃ ┃ ┗[Shuichi Tamagawa <sh] 9774 2004-07-05 11:59 ┃┃ ┃ ┗[Hirofumi Fujiwara <f] 9734 2004-07-01 19:23 ┃┃ ┣[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9757 2004-07-02 21:19 ┃┃ ┃┗[<takeshi@xxxxxxxxxx>] 9769 2004-07-03 19:27 ┃┃ ┃ ┗[Hirofumi Fujiwara <f] 9806 2004-07-10 14:04 ┃┃ ┗[<takeshi@xxxxxxxxxx>] 9828 2004-07-12 17:19 ┃┃ ┣[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9843 2004-07-13 15:31 ┃┃ ┗[Shuichi Tamagawa <sh] 9865 2004-07-15 15:55 ┃┃ ┗[Hirofumi Fujiwara <f] Re: 4.1 と UTF-8 9868 2004-07-16 03:52 ┃┃ ┗[Shuichi Tamagawa <sh] 9559 2004-06-07 22:46 ┃┣["Ryuichiro Munechika] 9569 2004-06-08 09:40 ┃┃┣[Hidekazu Ikeda <hike] 9577 2004-06-08 22:48 ┃┃┗[とみたまさひろ <tomm] 9627 2004-06-13 22:02 ┃┃ ┗[Hirofumi Fujiwara <f] 9591 2004-06-10 22:47 ┃┗[Jun Moriya <jmoriya@] 9565 2004-06-08 08:59 ┗[yoshi <yosihisa@xxxx] 9566 2004-06-08 09:11 ┗[Hidekazu Ikeda <hike] 9568 2004-06-08 09:32 ┗[yoshi <yosihisa@xxxx] 9570 2004-06-08 09:47 ┗[Hidekazu Ikeda <hike] 9571 2004-06-08 10:26 ┗[yasuyuki <yasuyuki@x] 9572 2004-06-08 10:37 ┗[Hidekazu Ikeda <hike] 9574 2004-06-08 11:58 ┗[えんどう <yasuyuki@x] 9575 2004-06-08 15:22 ┣["Ryuichiro Munechika] 9613 2004-06-12 22:10 ┃┗[とみたまさひろ <tomm] 9576 2004-06-08 20:19 ┗[Hidekazu Ikeda <hike]