mysql:9720
From: Hirofumi Fujiwara <Hirofumi Fujiwara <fuji@xxxxxxxxxx>>
Date: Tue, 29 Jun 2004 18:27:07 +0900 (JST)
Subject: [mysql 09720] Re: MySQL 4.1.2 の char と日本語
藤原です。 > 村上です。 > > At Wed, 23 Jun 2004 10:39:23 +0900 (JST), > Hirofumi Fujiwara wrote: > > > > 藤原です。 > > > もともと入っていたデータの一部が抜け落ちるようになる危険な現象で、な > > おかつ気づきにくいタイプなので、MySQLにきちんと対応してもらうべきだ > > と思います。 > > そうおもいます > > > > 何人かと話していて出た話は、 > > > > > > 1. version 4.1 が、古い frm を見た場合、「ALTER しなさい」のような > > > Warning もしくは Error を出すとうれしいかも。 > > > > > > 2. 強制的に自動で ALTER する機能よりも、外部に別に変換スクリプトがある方が > > > なにが起きているか把握できる > > > > > > 3. 古い frm テーブルに対する INSERT を、error で弾くというのはどうだろう > > > > > > どんなものでしょう? > > > > 3. はちょっとやり過ぎかなと思います。 > > > > テーブルのバージョン番号のところだけを確認したり、変更したりするのはSQL > > レベルでできるんでしたっけ? > > 変更は ALTER すればいいですが、 > 確認が SQL レベルではできないです。 実際に、テーブルを作ってテストしてみました。 ALTERしても、以前から入っているデータはそのまま長くても入ったままで した。 新たに入れたり変更しようとした場合にだけ、新しく解釈された長さで切ら れますね。 > > 1. で確認して、必要なら ALTERするので通常は充分と思います。 > > > > たくさんテーブルができている場合もあるだろうから、指定したデータベー > > スの全テーブル(または指定のテーブル)について、確認する手段の提供が > > 欲しいです。 > > SHOW TABLE STATUS; で出てくれればうれしいかな。 > > SQL で確認できれば、変換スクリプトも簡単に用意できそう。 古いバージョンは、バイト単位で、新しいのが文字単位になっています。安 全を期せば、8 と書かれていたものは、新しい方でも 8 にすることでしょ う。 しかし、そうすると無駄も多くなるし、レコードの長さが長くなり過ぎて、 そちらの制限に引っ掛かってしまう場合も発生しかねませんね。 できるだけ効率よく作ろうとすると、実際に入る文字数に合わせるべきでしょ うから、自動は難しいのではないでしょうか。 > > > > > + 4.1 から、char() はバイト数ではなく、文字数に仕様変更された。 > > > > > + EUC-JP は、最大で 1 日本語文字に 3 バイト使用する。 > > > > > なので、 > > > > > int(8 / 3) = 2 > > > > となる件は、MySQL側に伝えられているのでしょうか? > > いえ、まだです。 > アイデアがでたら、そのアイデアを実装してくれ、のレポートにしようと思ってました。 ここは、絶対安全な対処方法は難しそうなので、DBのバージョンアップ時に マルチバイト文字コードを利用している場合には、以下の問題点があるから 注意してください、みたいなので良いのではないでしょうか。 最大テーブル数のぶんだけALTERをやれば一応済むようなので、それでも良 いのではないかと思っています。 > #3. unicode マッピングと外字 ( utf-8-java, utf-8-ms, utf-8-nec とか作る?) これは、やり過ぎると、 iconv --list で出てくるcharacter sets の羅列みたいになるので、制限をかけておきたい です。 外字は、メーカーレベルの外字がまずあって、さらに個々の利用現場で勝手に 作られた外字の組合わせでやってくるので、相当面倒です。今は、各現場が繋 がっていない状態が多いと思いますが、どんどんネットで繋がれたりすると、 外字コードが同じでもどうにもならなくなるので、character set を増やすの ではなく、外字セットに対してのコードの振り方とか考えないといけないので はないかと思っています。 ------------------------------------------------------------------ 株式会社 タイムインターメディア 藤原 博文 fuji@xxxxxxxxxx 本社 160-0002 東京都新宿区坂町26-27 IPBビル TEL 03-5362-9009 URL http://www.timedia.co.jp/ FAX 03-5362-9008 地図 http://www.timedia.co.jp/company/map/ 新宿線曙橋駅徒歩5分 ------------------------------------------------------------------ ♪ Puzzle Japan http://www.puzzle.jp/ 毎日新作パズルで遊ぼう ♪ ------------------------------------------------------------------
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]