El procesamiento por lotes es una forma no interactiva de ejecutar programas MySQL y seguirá utilizando los mismos comandos que usaría en MySQL. El procesamiento por lotes es una forma no interactiva de ejecutar programas MySQL y seguirá utilizando los mismos comandos que usaría en MySQL.
Para implementar el procesamiento por lotes, redirige un archivo al programa mysql. Primero necesitamos un archivo de texto. Este archivo de texto contiene el mismo texto que el comando que ingresamos en mysql.
Por ejemplo, si queremos insertar algunos datos, use un archivo que contenga el siguiente texto (el nombre del archivo es New_Data.sql, por supuesto también podemos nombrarlo New_Data.txt o cualquier otro nombre legal, y no tiene por qué terminar con el sufijo sql):
USAR Meet_A_Geek;
INSERT INTO Clientes (ID_cliente, Apellido) VALUES(NULL, "Bloquear");
INSERT INTO Clientes (ID_cliente, Apellido) VALUES(NULL, "Newton");
INSERT INTO Clientes (ID_cliente, Apellido) VALUES(NULL, "Simmons");
Tenga en cuenta que las oraciones anteriores deben ser gramaticalmente correctas y cada oración debe terminar con un punto y coma. El comando USE anterior selecciona la base de datos y el comando INSERT inserta datos.
A continuación, debemos importar el archivo anterior a la base de datos. Antes de importar, debemos confirmar que la base de datos ya se está ejecutando, es decir, el proceso mysqld (o servicio, llamado "servicio" en Windows NT, "proceso" en Unix). ya funcionando.
Luego ejecute el siguiente comando:
bin/mysql –p < /home/mark/New_Data.sql
Luego ingrese la contraseña cuando se le solicite. Si no hay errores en las declaraciones en el archivo anterior, los datos se importarán a la base de datos.
Utilice LOAD DATA INFILE en la línea de comando para importar datos de un archivo a la base de datos:
Ahora quizás se esté preguntando: "¿Por qué diablos escribo todas estas declaraciones SQL en un archivo y luego las ejecuto a través de un programa?"
Esto puede parecer mucho trabajo. Bueno, probablemente tengas razón cuando lo piensas. Pero, ¿qué pasa si tiene registros de todos estos comandos? Esto es genial, bueno, la mayoría de las bases de datos generarán automáticamente un registro de los eventos registrados en la base de datos. La mayoría de los registros contienen comandos SQL originales que se han utilizado. Por lo tanto, si no puede exportar datos de su base de datos actual a una nueva base de datos MySQL, puede utilizar las funciones de registro y procesamiento por lotes de MySQL para importar sus datos rápida y fácilmente. Por supuesto, esto le ahorra la molestia de escribir.
CARGAR ARCHIVO DE DATOS
Este es el último método que presentaremos para importar datos a una base de datos MySQL. Este comando es muy similar a mysqlimport, pero este método se puede utilizar en la línea de comando de mysql. Esto significa que puede usar este comando en todos los programas que usan la API. Con este método, puede importar los datos que desea importar a su aplicación.
Antes de usar este comando, el proceso (servicio) mysqld debe estar ejecutándose.
Inicie la línea de comando mysql:
contenedor/mysql –p
Ingrese la contraseña cuando se le solicite. Después de ingresar exitosamente la línea de comando mysql, ingrese el siguiente comando:
USAR Meet_A_Geek;
CARGAR ARCHIVO DE DATOS "/home/mark/data.sql" EN LA TABLA Órdenes;
En pocas palabras, esto importará el contenido del archivo data.sql a la tabla Órdenes. Al igual que la herramienta mysqlimport, este comando también tiene algunos parámetros opcionales. Por ejemplo, si necesita importar datos desde su propia computadora a un servidor de base de datos remoto, puede usar el siguiente comando:
CARGAR DATOS ARCHIVO LOCAL "C:MyDocsSQL.txt" EN LA TABLA Órdenes;
El parámetro LOCAL anterior indica que el archivo es un archivo local y el servidor es el servidor en el que inició sesión. Esto elimina la necesidad de usar ftp para cargar archivos al servidor, MySQL lo hace por usted.
También puede establecer la prioridad de la declaración de inserción. Si desea marcarla como de baja prioridad (LOW_PRIORITY), MySQL esperará hasta que nadie más lea la tabla antes de insertar datos. Puede utilizar los siguientes comandos:
CARGAR DATOS LOW_PRIORITY INFILE "/home/mark/data.sql" EN LA TABLA Órdenes;
También puede especificar si desea reemplazar o ignorar valores clave duplicados en archivos y tablas al insertar datos. Sintaxis para reemplazar valores clave duplicados:
CARGAR DATOS LOW_PRIORITY INFILE "/home/mark/data.sql" REEMPLAZAR EN LA TABLA Órdenes;
La oración anterior puede parecer un poco torpe, pero coloca las palabras clave en un lugar que su perfilador puede entender.
El siguiente par de opciones describen el formato de grabación del archivo. Estas opciones también están disponibles en la herramienta mysqlimport. Se ven un poco diferentes aquí. Primero, se debe usar la palabra clave FIELDS. Si se usa esta palabra clave, el generador de perfiles MySQL espera ver al menos una de las siguientes opciones:
TERMINADO POR carácter
ENCERRADO POR carácter
ESCAPAR POR personaje
Estas palabras clave y sus parámetros se utilizan igual que en mysqlimport.
TERMINADO POR describe el carácter separador del campo, que es el carácter de tabulación (t) de forma predeterminada.
ENCLOSED BY describe los caracteres entre corchetes del campo. Por ejemplo, incluya cada campo entre comillas.
El carácter de escape descrito por ESCAPED BY. El valor predeterminado es barra invertida: ).
Lo siguiente todavía usa el ejemplo anterior del comando mysqlimport y usa la instrucción LOAD DATA INFILE para importar el mismo archivo a la base de datos:
CARGAR ARCHIVO DE DATOS "/home/mark/Orders.txt" REEMPLAZAR EN LA TABLA Campos de pedidos TERMINADOS POR ',' ENCERRADOS POR '"';
Hay una característica en la declaración LOAD DATA INFILE que no está disponible en la herramienta mysqlimport:
LOAD DATA INFILE puede importar archivos a la base de datos mediante columnas especificadas.
Esta característica es muy importante cuando queremos importar parte de los datos. Por ejemplo, cuando actualizamos de una base de datos de Access a una base de datos MySQL, necesitamos agregar algunas columnas (columnas/campos/campos) a la base de datos MySQL para satisfacer algunas necesidades adicionales.
En este momento, los datos de nuestra base de datos de Access todavía están disponibles, pero debido a que los campos de estos datos ya no coinciden con los de MySQL, la herramienta mysqlimport ya no se puede utilizar. No obstante, todavía podemos usar LOAD DATA INFILE. El siguiente ejemplo muestra cómo importar datos en un campo específico:
CARGAR ARCHIVO DE DATOS "/home/Order.txt" EN LA TABLA Pedidos (Número_pedido, Fecha_pedido, ID_cliente);
Como puede ver, podemos especificar los campos obligatorios. Estos campos especificados todavía están entre paréntesis y separados por comas. Si omite alguno de ellos, MySQL se lo recordará.