MySQL - Importación de base de datos - Métodos de recuperación

Hay dos formas sencillas en MySQL para cargar datos en la base de datos MySQL desde un archivo previamente respaldado.

Importación de datos con LOAD DATA

MySQL proporciona una declaración LOAD DATA que actúa como un cargador de datos masivo. Aquí hay una declaración de ejemplo que lee un archivodump.txt de su directorio actual y lo carga en la tabla mytbl en la base de datos actual.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;
  • Si el LOCAL la palabra clave no está presente, MySQL busca el archivo de datos en el servidor utilizando el looking into absolute pathname, que especifica completamente la ubicación del archivo, comenzando desde la raíz del sistema de archivos. MySQL lee el archivo desde la ubicación dada.

  • Por defecto, LOAD DATA asume que los archivos de datos contienen líneas que terminan con avances de línea (nuevas líneas) y que los valores de datos dentro de una línea están separados por tabulaciones.

  • Para especificar un formato de archivo explícitamente, utilice un FIELDS cláusula para describir las características de los campos dentro de una línea, y una LINEScláusula para especificar la secuencia final de línea. El seguimientoLOAD DATA declaración especifica que el archivo de datos contiene valores separados por dos puntos y líneas terminadas por retornos de carro y carácter de nueva línea.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
   -> FIELDS TERMINATED BY ':'
   -> LINES TERMINATED BY '\r\n';
  • El comando LOAD DATA asume que las columnas del archivo de datos tienen el mismo orden que las columnas de la tabla. Si eso no es cierto, puede especificar una lista para indicar en qué columnas de la tabla se deben cargar las columnas del archivo de datos. Suponga que su tabla tiene columnas a, byc, pero las columnas sucesivas del archivo de datos corresponden a las columnas b, cy a.

Puede cargar el archivo como se muestra en el siguiente bloque de código.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
   -> INTO TABLE mytbl (b, c, a);

Importando datos con mysqlimport

MySQL también incluye un programa de utilidad llamado mysqlimport que actúa como un envoltorio alrededor de LOAD DATA, para que pueda cargar los archivos de entrada directamente desde la línea de comando.

Para cargar datos del dump.txt dentro mytbl, utilice el siguiente comando en el indicador de UNIX.

$ mysqlimport -u root -p --local database_name dump.txt
password *****

Si utiliza mysqlimport, las opciones de la línea de comandos proporcionan los especificadores de formato. losmysqlimport comandos que corresponden a los dos anteriores LOAD DATA declaraciones se ve como se muestra en el siguiente bloque de código.

$ mysqlimport -u root -p --local --fields-terminated-by = ":" \
   --lines-terminated-by = "\r\n"  database_name dump.txt
password *****

El orden en el que especifique las opciones no importa para mysqlimport, excepto que todas deben preceder al nombre de la base de datos.

los mysqlimport declaración usa el --columns opción para especificar el orden de las columnas -

$ mysqlimport -u root -p --local --columns=b,c,a \
   database_name dump.txt
password *****

Manejo de citas y caracteres especiales

La cláusula FIELDS puede especificar otras opciones de formato además TERMINATED BY. Por defecto, LOAD DATA asume que los valores no están entre comillas e interpreta la barra invertida (\) como un carácter de escape para los caracteres especiales. Para indicar el carácter de cotización de valor explícitamente, utilice elENCLOSED BYmando. MySQL eliminará ese carácter de los extremos de los valores de datos durante el procesamiento de entrada. Para cambiar el carácter de escape predeterminado, useESCAPED BY.

Cuando especifica ENCLOSED BY para indicar que los caracteres de comillas deben eliminarse de los valores de datos, es posible incluir el carácter de comillas literalmente en los valores de datos duplicándolo o precediéndolo con el carácter de escape.

Por ejemplo, si las comillas y los caracteres de escape son "y \, el valor de entrada "a""b\"c" será interpretado como a"b"c.

por mysqlimport, las opciones de línea de comando correspondientes para especificar valores de comillas y de escape son --fields-enclosed-by y --fields-escaped-by.