
お世話になります。MySQL勉強中の初心者です。
環境:
MySQL5.1
OSX10.4 ターミナル (Winでいう「cmdプロンプト」です)
問題:
LOAD DATA INFILE でコマンドは通るのですが、select*from でチェックすると第一カラム(左端)だけは正常にロードされるんですが、残りのカラムがすべて NULL となってしまって切ないです。
ロードしたデータの例:
1011janc001a01
1012janc001a01
1013janc002a03
構造としては、こんな感じです。↓
文字列[tab]文字列[tab]文字列[tab]文字列[空白スペース?]
現在の結果:
| 1011 | NULL | NULL | NULL |
| 1012 | NULL | NULL | NULL |
| 1013 | NULL | NULL | NULL |
今は小規模なデータだけなのでやむなく手打ちでガコガコ入れてますが、原因を解明したいと思います。
どなたかアドバイス頂けると幸いです。宜しくお願いします。orz
れざ
No.2ベストアンサー
- 回答日時:
(1)テーブル名が一致してませんね
load data 文 「order_line」
show create table 文 「order1」
(2)LOAD DATA 文がカンマ区切りなのに提示されているデータはTAB区切り。
(3)MAC OSXなのに行区切りに"\r\n"
LOAD DATA INFILE '/yos-data/00_mscit/07_db/wk3-asg/order1.txt'
INTO TABLE order_line FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
で試してみては?
動きましたー(T.T)!!!
(1) はgooに投稿した時の私の打ちミスでした。失礼しました(汗)。
(2) と (3) が主な原因のようです。ご指摘有り難うございました。
MySQL初心者の上に、仕事では Win で正規表現を時たま使うので、Macとの表記の違いがあることに気付きませんでした。勉強になりました。orz
No.1
- 回答日時:
以下を補足説明願います。
(1)LOAD DATA INFILE文の具体的な指定内容
(2)表の定義内容
→データ型は必須。show create table文の結果なら、なおいい。
(3)文字コード
→show variables like '%char%'の表示結果。
LOAD DATA INFILEを入力しているクライアント(今回は、「OSX10.4 ターミナル」)から入力した結果
この回答への補足
うー、すみません、またお世話になります...。orz
(1)LOAD DATA INFILE文の具体的な指定内容(通ります):
LOAD DATA INFILE '/yos-data/00_mscit/07_db/wk3-asg/order1.txt'
INTO TABLE order_line FIELDS TERMINATED BY ","
LINES TERMINATED BY "\r\n";
ロードしたファイル
order1.txt
--------------------------------------
1011janc001a01
1012janc001a01
1013janc002a03
1014janc003a03
1015janc003a03
1016janc006a01
1017febc001a06
1018febc001a03
1019febc001a02
1020febc006a03
1021febc004a06
1022marc001a05
1023marc001a04
1024marc006a06
1025aprc001a05
1026mayc002a05
1035mayc006a06
1036mayc006a06
1050mayc006a01
--------------------------------------
(2)表の定義内容
mysql> show create table order1;
----------------------------------------+
| order1 | CREATE TABLE `order1` (
`ordno` char(4) NOT NULL,
`month` char(3) DEFAULT NULL,
`cid` char(4) DEFAULT NULL,
`aid` char(3) DEFAULT NULL,
PRIMARY KEY (`ordno`),
KEY `cid` (`cid`),
KEY `aid` (`aid`),
CONSTRAINT `order1_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `customer` (`cid`),
CONSTRAINT `order1_ibfk_2` FOREIGN KEY (`aid`) REFERENCES `agent` (`aid`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+--------+------------------------------
(3)文字コード
mysql> show variables like '%char%';
+--------------------------+------------------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.1.34-osx10.4-i686/share/charsets/ |
+--------------------------+------------------------------------------------------+
LOAD DATA INFILEを入力しているクライアント(今回は、「OSX10.4 ターミナル」)から入力した結果
mysql> select*from order1;
+-------+-------+------+------+
| ordno | month | cid | aid |
+-------+-------+------+------+
| 1011 | NULL | NULL | NULL |
| 1012 | NULL | NULL | NULL |
| 1013 | NULL | NULL | NULL |
| 1014 | NULL | NULL | NULL |
| 1015 | NULL | NULL | NULL |
| 1016 | NULL | NULL | NULL |
| 1017 | NULL | NULL | NULL |
| 1018 | NULL | NULL | NULL |
| 1019 | NULL | NULL | NULL |
| 1020 | NULL | NULL | NULL |
| 1021 | NULL | NULL | NULL |
| 1022 | NULL | NULL | NULL |
| 1023 | NULL | NULL | NULL |
| 1024 | NULL | NULL | NULL |
| 1025 | NULL | NULL | NULL |
| 1026 | NULL | NULL | NULL |
| 1035 | NULL | NULL | NULL |
| 1036 | NULL | NULL | NULL |
| 1050 | NULL | NULL | NULL |
+-------+-------+------+------+
情報が抜けてないと良いんですが…。宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フレンドリストのようなものを...
-
[MySQL]LOAD DATA INFILE一部レ...
-
時間範囲が重複したレコードを...
-
誤って削除したIDカラムを復元...
-
一部のカラムでdistinctし全て...
-
スペースによる絞り込み検索をS...
-
他のシートの検索
-
SQLServerでNULLを挿入したいです
-
now()かCURRENT_TIMESTAMPか
-
BULK INSERT時のNull許容について
-
UNIONする際、片方テーブルしか...
-
(初心者)MySQLやmaraDBで、crea...
-
ホームページを作ろうと思いま...
-
自分自身のテーブルを参照して更新
-
SQL、oracleにて文字列操作(連...
-
LIKEの右側にカラムを指定でき...
-
列を行に表示する方法は?
-
Accessの「IIF」に相当するSQL...
-
mySQL プライマリーキーのカラ...
-
INDIRECT関数の代替方法は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの列数を調べたい
-
group byで最後のレコードを抽...
-
[MySQL]LOAD DATA INFILE一部レ...
-
MYSQLで小数点を表示する場合と...
-
MySQL 改行コードを含む文字列...
-
フレンドリストのようなものを...
-
WHEREなどの条件が多い場合、ど...
-
betweenを使うyyyy/mm/ddでの範...
-
同一日に複数レコードがある場...
-
MySQL AUTO_INCREMENTが最大に...
-
データの暗号化について
-
[MYSQL]日付のカラムにデーター...
-
select * での表示が崩れる?
-
「VARCHAR(255)」を「text」に...
-
誤って削除したIDカラムを復元...
-
MySQL テーブルの一部のカラム...
-
MySQLでカラム内の値の先頭の数...
-
時間範囲が重複したレコードを...
-
MYSQLのストアドでの動的SQLに...
-
MySQLのselect文で、最大ID値の...
おすすめ情報