O processamento em lote é uma forma não interativa de executar programas MySQL, e você ainda usará os mesmos comandos que usaria no MySQL. O processamento em lote é uma forma não interativa de executar programas MySQL, e você ainda usará os mesmos comandos que usaria no MySQL.
Para implementar o processamento em lote, você redireciona um arquivo para o programa mysql. Primeiro, precisamos de um arquivo de texto. Este arquivo de texto contém o mesmo texto que o comando que inserimos no mysql.
Por exemplo, se quisermos inserir alguns dados, use um arquivo contendo o seguinte texto (o nome do arquivo é New_Data.sql, claro que também podemos nomeá-lo New_Data.txt ou qualquer outro nome legal, e não precisa terminar com o sufixo sql):
USAR Meet_A_Geek;
INSERT INTO Clientes (ID_Cliente, Sobrenome) VALUES(NULL, "Bloquear");
INSERT INTO Clientes (ID_Cliente, Sobrenome) VALUES(NULL, "Newton");
INSERT INTO Clientes (Customer_ID, Last_Name) VALUES(NULL, "Simmons");
Observe que as frases acima devem estar gramaticalmente corretas e cada frase deve terminar com ponto e vírgula. O comando USE acima seleciona o banco de dados e o comando INSERT insere dados.
Em seguida, precisamos importar o arquivo acima para o banco de dados. Antes de importar, devemos confirmar se o banco de dados já está em execução, ou seja, o processo mysqld (ou serviço, denominado "serviço" no Windows NT, "processo" no Unix) está. já está em execução.
Em seguida, execute o seguinte comando:
bin/mysql –p < /home/mark/New_Data.sql
Em seguida, insira a senha conforme solicitado. Se não houver erros nas instruções do arquivo acima, os dados serão importados para o banco de dados.
Use LOAD DATA INFILE na linha de comando para importar dados de um arquivo para o banco de dados:
Agora você pode estar se perguntando: "Por que diabos eu digito todas essas instruções SQL em um arquivo e depois as executo por meio de um programa?"
Isso pode parecer muito trabalhoso. Bem, você provavelmente está certo quando pensa assim. Mas e se você tiver registros de todos esses comandos? Agora, isso é ótimo, bem, a maioria dos bancos de dados irá gerar automaticamente um log dos eventos registrados no banco de dados. A maioria dos logs contém comandos SQL originais que foram usados. Portanto, se você não puder exportar dados do seu banco de dados atual para um novo banco de dados mysql, poderá usar os recursos de log e processamento em lote do mysql para importar seus dados de maneira rápida e fácil. Claro, isso evita o trabalho de digitar.
CARREGAR DADOS NO ARQUIVO
Este é o último método que apresentaremos para importar dados para um banco de dados MySQL. Este comando é muito semelhante ao mysqlimport, mas este método pode ser usado na linha de comando do mysql. Isso significa que você pode usar este comando em todos os programas que usam a API. Usando este método, você pode importar os dados que deseja importar para seu aplicativo.
Antes de usar este comando, o processo (serviço) mysqld deve estar em execução.
Inicie a linha de comando do mysql:
bin/mysql –p
Digite a senha conforme solicitado. Após entrar com sucesso na linha de comando do mysql, digite o seguinte comando:
USAR Meet_A_Geek;
CARREGAR DADOS INFILE "/home/mark/data.sql" NA TABELA Pedidos;
Simplificando, isso importará o conteúdo do arquivo data.sql para a tabela Pedidos. Assim como a ferramenta mysqlimport, este comando também possui alguns parâmetros opcionais. Por exemplo, se precisar importar dados do seu próprio computador para um servidor de banco de dados remoto, você pode usar o seguinte comando:
CARREGAR DADOS LOCAL INFILE "C:MyDocsSQL.txt" NA TABELA Pedidos;
O parâmetro LOCAL acima indica que o arquivo é um arquivo local e o servidor é o servidor no qual você está logado. Isso elimina a necessidade de usar FTP para enviar arquivos para o servidor, o MySQL faz isso para você.
Você também pode definir a prioridade da instrução insert. Se quiser marcá-la como de baixa prioridade (LOW_PRIORITY), o MySQL irá esperar até que ninguém mais leia a tabela antes de inserir os dados. Você pode usar os seguintes comandos:
CARREGAR DADOS LOW_PRIORITY INFILE "/home/mark/data.sql" INTO TABLE Pedidos;
Você também pode especificar se deseja substituir ou ignorar valores-chave duplicados em arquivos e tabelas ao inserir dados. Sintaxe para substituir valores-chave duplicados:
LOAD DATA LOW_PRIORITY INFILE "/home/mark/data.sql" REPLACE INTO TABLE Pedidos;
A frase acima pode parecer um pouco desajeitada, mas coloca as palavras-chave em um lugar que seu criador de perfil possa entender.
O par de opções a seguir descreve o formato de gravação do arquivo. Essas opções também estão disponíveis na ferramenta mysqlimport. Eles parecem um pouco diferentes aqui. Primeiro, a palavra-chave FIELDS deve ser usada. Se esta palavra-chave for usada, o criador de perfil do MySQL espera ver pelo menos uma das seguintes opções:
TERMINADO POR personagem
INCLUÍDO POR personagem
ESCAPADO POR personagem
Essas palavras-chave e seus parâmetros são usados da mesma forma que em mysqlimport.
TERMINATED BY descreve o caractere separador do campo, que é o caractere de tabulação (t) por padrão.
ENCLOSED BY descreve os caracteres entre colchetes do campo. Por exemplo, coloque cada campo entre aspas.
O caractere de escape descrito por ESCAPED BY. O padrão é barra invertida: ).
O exemplo a seguir ainda usa o exemplo de comando mysqlimport anterior e usa a instrução LOAD DATA INFILE para importar o mesmo arquivo para o banco de dados:
CARREGAR DADOS NO ARQUIVO "/home/mark/Orders.txt" SUBSTITUIR NA TABELA Pedidos CAMPOS TERMINADOS POR ',' ENCLOSED BY '"';
Existe um recurso na instrução LOAD DATA INFILE que não está disponível na ferramenta mysqlimport:
LOAD DATA INFILE pode importar arquivos para o banco de dados por colunas especificadas.
Este recurso é muito importante quando queremos importar parte dos dados. Por exemplo, quando atualizamos de um banco de dados Access para um banco de dados MySQL, precisamos adicionar algumas colunas (colunas/campos/campos) ao banco de dados MySQL para atender a algumas necessidades adicionais.
Neste momento, os dados do nosso banco de dados Access ainda estão disponíveis, mas como os campos desses dados não correspondem mais aos do MySQL, a ferramenta mysqlimport não pode mais ser usada. No entanto, ainda podemos usar LOAD DATA INFILE. O exemplo a seguir mostra como importar dados para um campo especificado:
CARREGAR DADOS NO ARQUIVO "/home/Order.txt" NA TABELA Pedidos (Número_Pedido, Data_Pedido, ID_Cliente);
Como você pode ver, podemos especificar os campos obrigatórios. Esses campos especificados ainda estão entre parênteses e separados por vírgulas. Se você perder algum deles, o MySQL irá lembrá-lo.