• ベストアンサー

データを追加するテキストの型

MySQLを勉強し始めたばかりです。環境はWindows XpにWampServerを入れ、MySQL consoleを起動させています。 データベースにテーブルを作り、同じフォルダーに"data.txt"を入れてデータをテーブルに追加しました。 load data infile "data.txt" into table tablename; 初めはメモ帳で作り、data.txtで保存。上記の通り入力したらエラーが出ました。 次にwordにメモ帳で作った内容をコピーし、書式なしテキスト形式 data.txtで保存し、同じ文で実行したら成功しました。 全く同じ内容(タブも同じ位置)のテキスト形式(.txt)であっても作るソフトにより何か型が違うのでしょうか。2度目の方法で成功しましたが、何が違うのか理解したいので教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (766/5722)
回答No.1

エラーメッセージがどのようなものかわからないので推測ですが、 保存されているファイルの文字コードや改行コードによって、 同じように見えるテキストファイルでも、 異なった結果になるのだと思われます。 WindowsXP では、メモ帳で保存する時に文字コードの設定ができると思いますが、 そこでは ANSI や UTF-8 などが選択できると思います。 最初に保存されたのはおそらく初期値である ANSI だと思われます。 一方、ワードで書式なしで保存すると、 ワードのバージョンによって違うかも知れませんが、 私が使っている 2007 では、文字コードや改行コードについての指定ができます。 質問者様が保存されたファイルが実際にはどの文字コードや改行コードで保存されたのかわかりませんが、 メモ帳とは異なる結果になるような保存形態になったのではないかと思います。 実際に、どこがどう違うデータファイルとなったのかは、 バイナリーダンプ表示してくれるソフトや、 ファイル比較してくれるソフトなどで確認してみるとよくわかります。 コマンドプロンプトをお使いになられる事ができるのでしたら、 以下のコマンドでもそれなりに違いを発見できます。 テキスト比較  fc ファイル名1 ファイル名2 バイナリ比較  fc /b ファイル名1 ファイル名2 ※実行ディレクトリによりファイル名にはパスを含みますので注意。 結果 MySQL console で処理される文字コードや改行コードに見合ったものが、 ワードによって保存されたのではないでしょうか。

pech00
質問者

お礼

ありがとうございます。エラーは下記の通りです。 ERROR 1452 (23000): Cannot add or updata a child row: a foreign key constraing fails (`projektit`.`prohenk`, CONSTRAINT `projhenk_ibfk_2` FOREIGIN KEY (`htun`)REFERENCES `henkilo` (`htun`)) 教えてくださったテキスト比較とバイナリ比較をしましたら、成功した方が失敗した方より長いと出たので、ファイルを開いてよく見ると、失敗した方は最後の改行がありませんでした。もしかしたらこれで引っかかったのかもしれません。次回は最後の改行も気にして入力します。すっきりしました。

関連するQ&A