みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

insertを用いてテーブルにレコードを追加することができるのにもかか

insertを用いてテーブルにレコードを追加することができるのにもかかわらず、load data infile を用いるとerror1366と表示されてしまいます。解決方法を教えてください。

Windows7 mysqlは最新版を使っています。

インストールしたそのままの状態だと、insertを用いて日本語を挿入しようとするとerror 1366と出てしまってましたが、my.iniを書き換えることによってinsert table1 values (1,'ああ');といった操作でエラーが出ることはなくなりました。

しかしcsvファイルをload data infileを用いてインポートしようとすると、またerror 1366が出てしまいました。
インポートしようとしたファイルには日本語が書かれています。

英字だけのファイルを同様にインポートすると、エラーは出ませんでした。


<table1>
id int(15)
name varchar(255)


1,a
2,b
3,asdf

はインポート可能
。また
insert table1 values (1,'あ');
も正常に動作。

1,あ
2,い

をインポートするとエラー。


これができないと先に進めません・・・

ご教授お願いします。

投稿日時 - 2010-08-05 19:40:27

QNo.6089328

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

マルチバイトなキャラクターセットのファイルをLOAD DATAで読み込む場合、LOAD DATA文に文字コードを指定しないとうまく読み込まない場合があります。

MySQLの日本語マニュアルには文字コードを指定する部分に関して記載がありませんので、英語版のほうのマニュアルのURLを記載しておきます。

参考URL:http://dev.mysql.com/doc/refman/5.1/en/load-data.html

投稿日時 - 2010-08-08 14:30:22

ANo.2

>mysqlは最新版を使って

最低限、MySQL 5.0とかMySQL 5.1レベルまでは、具体的に提示するようにしてください。
また、安定バージョンでなく開発途上のものだと、MySQL 5.1.xxで「仕様変更した」、「バグ修正した」といったことも実際にあったりしますので、より具体的なバージョン番号を提示するようにしてください。

> my.iniを書き換えることによって

MySQLの文字コードの設定は、サーバ、データベース、クライアント別にあります。

実際にどういう設定が有効になっているか、確認できませんか?
SQLが入力できる状態で、

SHOW VARIABLES LIKE '%char%'

で表示させてみてください。

>insertを用いて日本語を挿入
>load data infileを用いてインポートしようと

insertは、MySQL Command Line Clientから直接入力しているのでしょうか?
load data infileも、同じですか?
もし違うクライアントソフトから実行しているなら、双方で SHOW VARIABLES の結果を確認してください。

投稿日時 - 2010-08-07 00:02:16

ANo.1

推測に過ぎませんが、テーブルのnameフィールドの文字コードと
データファイルの文字コードが違うのではないでしょうか。

MySQLの管理ツールは何か使われてますか?

投稿日時 - 2010-08-06 03:57:58

補足

回答ありがとうございます。

説明不足で申し訳ありません。
管理ツールはworkbenchを使っています。

nameフィールドの文字コードはworkbenchで、
データファイルはTeraPadで確認しましたが、両方sjis
となっていました。

なぜ読み込めないのでしょうか…

引き続き回答お待ちしております。

投稿日時 - 2010-08-06 12:42:04

あなたにオススメの質問