2017-09-01 4 views
1

これは私がLinuxターミナルロード・ファイル、最後の行と列で間違った出力が

mysql -p cookbook < mo.sql 

ノー警告、エラーなしからそれを実行するSQLファイル

# mo.sql 

DROP TABLE IF EXISTS mo; 
#@ _CREATE_TABLE_ 
CREATE TABLE mo 
(
    name CHAR(30), 
    age INT, 
    salary INT 
); 
#@ _CREATE_TABLE_ 

LOAD DATA LOCAL INFILE 'moja-2001.txt' INTO TABLE mo; 

です。

SELECT * FROM mo; 
+--------------------------+------+--------+ 
| name      | age | salary | 
+--------------------------+------+--------+ 
| jova jovic    | 24 | NULL | 
| ceda prashak    | 25 | NULL | 
| toma grobar  28 20001 | NULL | NULL | 
+--------------------------+------+--------+ 

私はなぜ給与列が?間違っているのはなぜ3行目も間違っているgeanyテキストエディタ

jova jovic  24 999 
ceda prashak 25 1000 
toma grobar  28 20001 

でtxtファイルを作成していますか?

+0

最後の行は、値に正しい区切り文字を使用しません。他の行はタブを使用して値を区切り、最後の行はスペースを使用すると考えられます。 – axiac

答えて

2

最後の行は値に正しい区切り文字を使用しません。他の行はタブを使用して値を区切り、最後の行はスペースを使用すると考えられます。列はsalaryと同じです。

値に同じセパレータを使用していることを確認してください。カンマ(表示され、エラーが発生しにくい)を使用し、LOAD DATAステートメントのFIELDS TERMINATED BY句を使用してMySQLに通知する方が良いでしょう。

の変更次のようになりたいファイル:

jova jovic,24,999 
ceda prashak,25,1000 
toma grobar,28,20001 

とこのようにそれをインポートします。

LOAD DATA LOCAL INFILE 'moja-2001.txt' INTO TABLE mo FIELDS TERMINATED BY ','; 

LOAD DATA statementについては、こちらをご覧ください。