Come caricare DATI INFILETTI in mysql con prima colonna Incremento automatico?

Attualmente, abbiamo una tabella simile a questa:

--------------------- ID | AField | BField| --------------------- 

L’ID è Auto Increment

Come posso creare un CSV che consenta al database di compilare automaticamente il campo ID con il numero di incremento automatico?

Abbiamo provato il seguente CSV ma non funziona:

 afieldvalue, bfieldvalue (With Column definition but still doesn't work) 0,afieldvalue,bfieldvalue NULL,afieldvalue,bfieldvalue 

La cosa migliore da fare è includere solo le 2 colonne non autoincrementate nel CSV, quindi impostare esplicitamente la colonna ID su NULL nell’istruzione di caricamento dei dati.

Qualcosa come questo:

 LOAD DATA INFILE '/tmp/data.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' (AField, BField) SET ID = NULL; 

puoi “omettere” il campo ID nella riga di dati inserendo il segno delimitatore all’inizio di una riga, come (per lo schema ID,AField,BField della tabella ID,AField,BField ):

 ,afieldvalue,bfieldvalue ... 

durante la lettura di tale file csv, lo script assegnerà NULL al campo ID

Prova a utilizzare NULL come valore nel file csv per il campo ID.

CARICARE DATI INFILE ‘/tmp/data.csv’ INTO TABLE your_table CAMPI TERMINATI DA ‘,’ LINEE TERMINATE DA ‘\ r’ (AField, BField);

NULL nel file CSV viene letto come STRING in MySQL. Se vuoi avere valori nulli in una colonna MySQL usa invece \N al posto di `NULL. Questo risolverà il problema e otterrai il risultato richiesto.

Se hai solo un piccolo numero di colonne, puoi semplicemente nominarle: LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE mytable (AField); (supponendo solo ID e campo)

 LINES TERMINATED BY '\r\n' 

Questa è stata la chiave del successo per me quando uso un file di testo