2009-11-01 9 views
11

"LOAD DATA LOCAL INFILE 'filename' INTO TABLE 'tablename'"を使用してデータファイルをmysqlテーブルにロードしようとしました。MySQLのロードデータINFILE - 主キーのないファイルのロード

ソースデータファイルにはすべてのフィールドのデータが含まれていますが、プライマリキーがありません( 'id'カラム)。ソースデータファイルの各行に一意のIDを追加する必要があります。そうしないと、インポートが実行されません。

ソースファイル内の主キーを無視するか、インポート中に自動的に増やすオプションはありますか?

すでに自動インクリメントのプライマリキーに設定されています。

mysql> desc tablename; 
+--------------------+--------------+------+-----+---------+----------------+ 
| Field    | Type   | Null | Key | Default | Extra   | 
+--------------------+--------------+------+-----+---------+----------------+ 
| id     | int(11)  | NO | PRI | NULL | auto_increment | 
... 

答えて

13

なぜ、自動インクリメントの主キーを持つテーブルにロードしないのですか?

create table MyTable (
    id integer auto_increment primary key, 
    ... 
) 

あなたは、テーブル名の後にインポートされます列を指定することができます:あなたはidカラムを指定しない場合

LOAD DATA INFILE 'filename' INTO TABLE tablename (col1,col2,...); 

、MySQLはファイルからそれを読むことはありません。

+0

テーブルを作成するときに、すでに自動インクリメントの主キーに設定されています。 – jack

+1

素晴らしい、それは動作します。ありがとう。 – jack

+3

注:列は、フィールド/行/列のターミネータ/囲み宣言の後に来る必要があります。 –

関連する問題