Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ TaurusDB/ Preguntas frecuentes/ Uso de base de datos/ ¿Cómo uso LOAD DATA para importar datos locales?
Actualización más reciente 2023-12-14 GMT+08:00

¿Cómo uso LOAD DATA para importar datos locales?

Puede usar LOAD DATA para importar datos locales a GaussDB(for MySQL).

Sintaxis

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: ruta del archivo local que se va a importar.
  • REPLACE | IGNORE: si se deben reemplazar o ignorar registros duplicados.
  • tbl_name: nombre de la tabla que se va a importar.
  • CHARACTER SET charset_name: formato de codificación de archivo. Se recomienda utilizar el formato de codificación de las instancias de GaussDB(for MySQL) para evitar caracteres confusos.
  • FIELDS TERMINATED BY 'string': separador entre columnas. El valor predeterminado es \t.
  • [OPTIONALLY] ENCLOSED BY 'char': se utiliza para omitir símbolos en campos de origen de datos.
  • LINES TERMINATED BY'string??: carácter de nueva línea entre líneas. El valor predeterminado es \n.

    En algunos hosts que ejecutan Windows servers, los caracteres de nueva línea de los archivos de texto pueden ser \r\n, que es invisible.

  • IGNORE number LINES: se utiliza para ignorar las líneas al inicio del archivo.
  • (column_name_or_user_var, ...): columnas que se van a importar. Si este parámetro no está configurado, los datos se importan según la secuencia de columnas de forma predeterminada.
  • Para otros parámetros, consulte el archivo de carga de datos en el sitio web oficial de MySQL. La secuencia de otros parámetros debe ser correcta. Para obtener detalles de la secuencia, visite el sitio web oficial de MySQL.

Ejemplo estándar

Prerrequisitos
  • El parámetro local_infile debe estar habilitado en el servidor. Haga clic en el nombre de la instancia para ir a la página Basic Information. En la página Parameters, cambie el valor de este parámetro a ON.
  • El parámetro local-infile debe estar habilitado en el cliente. Configure local-infile en el archivo my.cnf o utilice la opción --local-infile=1 para conectarse a la base de datos.
    [mysql]
    local-infile
  1. Importe los datos del archivo local qq.txt a la tabla test. El archivo qq.txt contiene cinco filas de datos. El separador de columna es de ',' y el separador de fila es de '\n'.
    1,a
    2,b
    3,c
    4,d
    5,"e"
  2. Cree la tabla test.
    CREATE TABLE test (
    `id` int NOT NULL,
    `a` varchar(4) NOT NULL, 
    PRIMARY KEY (`id`) 
    );
  3. En el cliente, ejecute la sentencia LOAD DATA para importar datos del archivo qq.txt a la tabla test y establezca el conjunto de caracteres en utf8 e ignore las comillas dobles del campo de origen de datos.
    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. La importación de datos afecta al rendimiento de las instancias de GaussDB(for MySQL). Importación de datos durante horas fuera de pico.
  2. No inicie varias solicitudes de LOAD DATA al mismo tiempo. Cuando se inician varias solicitudes de LOAD DATA, las transacciones SQL pueden expirar debido a operaciones de escritura de datos altamente simultáneas, bloqueo de tabla y ocupación de E/S del sistema, lo que resulta en una falla de todas las solicitudes de LOAD DATA.