Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(for MySQL)/ Perguntas frequentes/ Uso do banco de dados/ Como usar LOAD DATA para importar dados locais?
Atualizado em 2024-09-29 GMT+08:00

Como usar LOAD DATA para importar dados locais?

Você pode usar LOAD DATA para importar dados locais para o GaussDB(for MySQL).

Sintaxe

LOAD DATA LOCAL
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
    ]
    [LINES
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(col_name_or_user_var
        [, col_name_or_user_var] ...)]

Parâmetros

  • file_name: caminho do arquivo local a ser importado.
  • REPLACE | IGNORE: se deve substituir ou ignorar registros duplicados.
  • tbl_name: nome da tabela a ser importada.
  • CHARACTER SET charset_name: formato de codificação do arquivo. É aconselhável usar o formato de codificação das instâncias do GaussDB(for MySQL) para evitar caracteres ilegíveis.
  • FIELDS TERMINATED BY 'string': separador entre colunas. O valor padrão é \t.
  • [OPTIONALLY] ENCLOSED BY 'char': usado para ignorar símbolos em campos de origem de dados.
  • LINES TERMINATED BY'string??: caractere de nova linha entre linhas. O valor padrão é \n.

    Em alguns hosts que executam os servidores Windows, os caracteres de nova linha dos arquivos de texto podem ser \r\n, que é invisível.

  • IGNORE number LINES: usado para ignorar linhas no início do arquivo.
  • (column_name_or_user_var, ...): colunas a serem importadas. Se esse parâmetro não estiver configurado, os dados serão importados com base na sequência de colunas por padrão.
  • Para obter outros parâmetros, consulte o arquivo de dados de carregamento no site oficial do MySQL. A sequência de outros parâmetros deve estar correta. Para detalhes da sequência, visite o site oficial do MySQL.

Exemplo padrão

Pré-requisitos
  • O parâmetro local_infile deve ser ativado no servidor. Clique no nome da instância para acessar a página Basic Information. Na página Parameters, altere o valor deste parâmetro para ON.
  • O parâmetro local-infile deve ser ativado no cliente. Configure local-infile no arquivo my.cnf ou use a opção --local-infile=1 para se conectar ao banco de dados.
    [mysql]
    local-infile
  1. Importe os dados no arquivo local qq.txt para a tabela test. O arquivo qq.txt contém cinco linhas de dados. O separador de coluna é ',' e o separador de linha é '\n'.
    1,a
    2,b
    3,c
    4,d
    5,"e"
  2. Crie a tabela test.
    CREATE TABLE test (
    `id` int NOT NULL,
    `a` varchar(4) NOT NULL, 
    PRIMARY KEY (`id`) 
    );
  3. No cliente, execute a instrução LOAD DATA para importar dados no arquivo qq.txt para a tabela test, defina o conjunto de caracteres como utf8 e ignore as aspas duplas no campo de fonte de dados.
    mysql> LOAD DATA LOCAL INFILE '/data/qq.txt' IGNORE INTO TABLE test CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
    Query OK, 5 rows affected, 1 warning (0.00 sec)
    Records: 5  Deleted: 0  Skipped: 0  Warnings: 1
    
    mysql> select * from test;
    +----+---+
    | id | a |
    +----+---+
    |  1 | a |
    |  2 | b |
    |  3 | c |
    |  4 | d |
    |  5 | e |
    +----+---+
    5 rows in set (0.00 sec)
  1. A importação de dados afeta o desempenho das instâncias do GaussDB(for MySQL). Importe dados fora do horário de pico.
  2. Não inicie várias solicitações LOAD DATA ao mesmo tempo. Quando várias solicitações de LOAD DATA são iniciadas, as transações SQL podem ter um tempo limite devido a operações de gravação de dados altamente simultâneas, bloqueio de tabela e ocupação de I/O do sistema, resultando na falha de todas as solicitações de LOAD DATA.