Mysql
 sql >> Database >  >> RDS >> Mysql

Barra indietro nel file CSV

Per impostazione predefinita LOAD DATA usa \ come carattere di escape. Considera il tuo contributo:

"abcd", "efgh\", "ijk"

Quella sequenza \" viene interpretato come una virgoletta letterale non di chiusura, non una barra rovesciata seguita da una virgoletta.

Il migliore la soluzione è sfuggire correttamente alle barre rovesciate nel file CSV, ad esempio:

"abcd", "efgh\\", "ijk"

Se non puoi farlo, puoi disabilitare l'escape nell'istruzione LOAD DATA INFILE aggiungendo ESCAPED BY '' alla dichiarazione. Ciò impedirà di riconoscere \ come carattere di escape, ma tieni presente che disabiliterà anche tutte le altre sequenze di escape nel file di input. Ciò importerà anche efgh\ , la barra rovesciata non verrà ignorata.

Se importi efgh\ è inaccettabile, dovrai correggere il formato del tuo file di input o rimuovere il finale \ in un secondo momento nella logica dell'applicazione o con un'altra query SQL.

Vedere Sintassi MySQL LOAD DATA INFILE per ulteriori informazioni sulle opzioni di formato file.

Spero di esserti stato d'aiuto.