12

「LOAD DATA LOCAL INFILE 'filename' INTO TABLE 'tablename'」を使用して、データ ファイルを mysql テーブルにロードしようとしていました。

問題は、ソース データ ファイルにすべてのフィールドのデータが含まれているが、主キー ('id' 列) がないことです。ソース データ ファイルの各行に一意の ID を追加する必要があります。そうしないと、インポートが完了しません。

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

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

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

1 に答える 1

14

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

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

テーブル名の後にインポートされる列を指定できます。

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

id 列を指定しない場合、MySQL はファイルからそれを読み取りません。

于 2009-11-01T12:21:14.583 に答える