Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Barra invertida no arquivo csv


Por padrão, LOAD DATA usa \ como caractere de escape. Considere sua entrada:
"abcd", "efgh\", "ijk"

Essa sequência \" é interpretado como uma citação literal não delimitada, não uma barra invertida seguida por uma citação.

O melhor solução é escapar corretamente das barras invertidas no seu arquivo CSV, por exemplo:
"abcd", "efgh\\", "ijk"

Se você não puder fazer isso, você pode desabilitar o escape em sua instrução LOAD DATA INFILE adicionando ESCAPED BY '' à declaração. Isso impedirá que ele reconheça \ como um caractere de escape, mas lembre-se de que também desativará todas as outras sequências de escape em seu arquivo de entrada. Isso também importará efgh\ , a barra invertida não será ignorada.

Se estiver importando efgh\ for inaceitável, você terá que corrigir o formato do seu arquivo de entrada ou remover o \ à direita mais tarde na lógica do aplicativo ou com outra consulta SQL.

Consulte Sintaxe MySQL LOAD DATA INFILE para obter mais informações sobre as opções de formato de arquivo.

Espero que ajude.