![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?e8efa67)
日本語(EUCJP)を含むタブ区切りテキストのインポートに失敗しており、
行き詰ってしまいました。考えられる原因等お気付きありましたら、
ご指摘頂ければ助かります。
尚、my.cnfで[mysql], [mysqld], [mysqlimport], [mysqldump]は、
default-character-set=ujis
で設定しています。
mysql> select version();
+---------------------+
| version() |
+---------------------+
| 5.0.27-standard-log |
+---------------------+
1 row in set (0.00 sec)
mysql> LOAD DATA INFILE "/hoge/hoge.csv" INTO TABLE test;
Query OK, 5 rows affected, 15 warnings (0.00 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 15
mysql> show warnings;
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1265 | Data truncated for column 'mycolumn1' at row 1|
| Warning | 1265 | Data truncated for column 'mycolumn2' at row 1|
| Warning | 1265 | Data truncated for column 'mycolumn3' at row 1|
| Warning | 1265 | Data truncated for column 'mycolumn1' at row 2|
| Warning | 1265 | Data truncated for column 'mycolumn2' at row 2|
| Warning | 1265 | Data truncated for column 'mycolumn3' at row 2|
| Warning | 1265 | Data truncated for column 'mycolumn1' at row 3|
| Warning | 1265 | Data truncated for column 'mycolumn2' at row 3|
| Warning | 1265 | Data truncated for column 'mycolumn3' at row 3|
| Warning | 1265 | Data truncated for column 'mycolumn1' at row 4|
| Warning | 1265 | Data truncated for column 'mycolumn2' at row 4|
| Warning | 1265 | Data truncated for column 'mycolumn3' at row 4|
| Warning | 1265 | Data truncated for column 'mycolumn1' at row 5|
| Warning | 1265 | Data truncated for column 'mycolumn2' at row 5|
| Warning | 1265 | Data truncated for column 'mycolumn3' at row 5|
+---------+------+-----------------------------------------------+
15 rows in set (0.01 sec)
こんな状態です。ちなみに、mycolumn1,2,3のカラムは、
日本語を格納する為のカラムで、varchar(255), text型です。
他のカラムには英数字データが入るのですが、そちらは成功しています。
上記Warning文を見た限りでは、MySQLによりデータが加工されている
ようですが。。。。
この問題を解決する為に、他に設定するべきことや、
必要なコマンドがありますでしょうか?
またコマンドラインからの、mysqlimportも同様に失敗しました。
日本語テキストのインポートによるテーブルデータ格納は
MySQLの仕様的に可能かと思われますが、上記問題がおきてしまいました。
お気付きありましたら、ご指摘いただけたら助かります。
A 回答 (2件)
- 最新から表示
- 回答順に表示
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?e8efa67)
No.2
- 回答日時:
truncated =「切りつめた」なので、文字数オーバーなのでは?
eucでは、全角一文字につき2バイトだから、全て全角で入力されているとして
(255byte )/2 ≒ 127文字までかな?
そして、最後の128文字目は、半分にされてしまうので、文字としてきちんと表示できなくなります。
http://dev.mysql.com/doc/refman/4.1/ja/storage-r …
全部text型にしてみたら?
max 2^16 ≒ 6万バイトまで可能
hrm_mmm様
ご回答、誠にありがとうございました。
ですよね、、、しかし、日本語で7文字のデータが、
text型なのに、なぜかトランケートされてしまうのです。。。
Warning (Code 1265): Data truncated for column 'hoge' at row 1
むー、なぞですね。
多分自分のやり方に、どこかDoubtがある気がしますが。
ただInsert into ~でTerminalからコピペすると、問題なく格納されるのです。。。
改めて調査してみます。
参考になりました、ありがとうございました。
No.1
- 回答日時:
各行の日本語データを「”」で囲こみ、「ENCLOSED BY '"'」オプションを加えたLOAD DATA INFILEコマンド発行を試してみてください。
私も毎日、日本語データを含むLOAD DATA INFILEコマンドを使用していますが、まったく問題が起きません。
mooboogie様
ご回答、誠にありがとうございました。
ENCLOSED BYをつけてやってみました。
しかし。。。
全ての文字列格納箇所を、text型にし、
mysql> LOAD DATA INFILE "/var/www/data/hoge.csv" INTO TABLE hoge_table FIELDS TERMINATED BY '\t' ENCLOSED BY '"';
してみたのですが、やはり、EUCJPの日本語のカラムだけ、失敗して
しまいます。。。尚日本語は”で括りました。
テキストファイルは次の内容です。
haitta<tab>"あいう"<tab>"かきく"<tab>"さしす"<tab>1
クエリ結果:
Query OK, 1 row affected, 3 warnings (0.01 sec)
Records: 1 Deleted: 0 Skipped: 0 Warnings: 3
※hoge1, hoge2, hoge3は、各々text型。
Warning (Code 1265): Data truncated for column 'hoge1' at row 1
Warning (Code 1265): Data truncated for column 'hoge2' at row 1
Warning (Code 1265): Data truncated for column 'hoge3' at row 1
mysql> select * from hoge_table;
+-----------+-------+----------+--------+------+
| id | hoge1 | hoge2 | hoge3 | no |
+-----------+-------+----------+--------+------+
| haitta | | | | 1 |
+-----------+-------+----------+--------+------+
1 row in set (0.00 sec)
改めて調査してみます。
いずれにせよ、参考になるご回答ありがとうございました。
御礼申し上げます。
(多分自分のやり方に、自分で気付いていない何か問題があるはずなのですが。。ちなみにMySQLはapt-get installでインストールしており、
変えたところは、/etc/my.cnfを配置して、default-charsetいじったぐらいだったかと思うのですが。。。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLを作ったのですがうまくいき...
-
SQLです教えてくださいお願いし...
-
SQL教えてください。
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです。こんな感じですか?あ...
-
次の時間帯の勝率の合計を求め...
-
エラー 1068 (42000): 複数の主...
-
SQLです教えてくださいお願いし...
-
htmlコードで書かれた表にphpで...
-
SQLでカラムを追加し、条件に合...
-
int(11)の(11)とは何を意味して...
-
SQLです下記の問合せを行うクエ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
【初歩】ラジオボタンをつかっ...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
SQL Server のキャラクターセッ...
-
文字コードMS932(Windows-31J...
-
SQLで日本語データを入力したい...
-
存在しているファイルがロード...
-
急に文字化けを起こすようにな...
-
MySQL 文字化けについて
-
日本語TSVファイルのLOAD DATA ...
-
mysqlのカラムaaaに、英文があ...
-
MySQL コマンド上の文字化けを...
-
my sqlで文字化け
-
MySQL 日本語表示 日本語入力...
-
PHP経由でMYSQLに全角文字を格...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
VBAで変数内に保持された二次配...
-
like句を使って日本語を検索す...
おすすめ情報