Cada programador que teve que trabalhar com bancos de dados encontrou instruções DML (por. do inglês - "linguagem de manipulação de dados"), como Selecione, Inserir, Excluir e Atualizar. O ambiente MySQL também usa todos os comandos acima em seu arsenal.
Esses operadores falam logicamente sobre seusatribuição - seleção de registros, inserção de novos valores, atualização de dados existentes, completa, ou conforme condições especificadas, exclusão de informações no banco de dados. Nos materiais teóricos de treinamento, o princípio de funcionamento de cada comando e sua sintaxe são descritos em detalhes, porém, em nenhum lugar há menção de dificuldades que possam surgir na prática durante o uso. Este material será dedicado a considerar alguns deles.
Antes de prosseguir, é necessário lembrar mais uma vez com mais detalhes sobre o propósito de cada uma das funções. Estaremos interessados em dois operadores em mais detalhes: Inserir e Atualizar, pois é deles que surgem as principais dificuldades no processamento de grandes quantidades de dados.
Você precisa começar com o comando Inserir, e, em seguida, vá para Atualizar. MySQL o sistema, como qualquer outro DBMS moderno, usa a operação Inserir para adicionar novas entradas atabelas de banco de dados. A sintaxe para esta operação é muito simples e direta. Ele contém uma enumeração dos campos onde os valores serão inseridos, o destino - o nome da tabela - e a lista dos próprios dados inseridos. Cada vez que você executa o comando Inserir o banco de dados será atualizado com novos valores.
No entanto, na prática, muitas vezes hásituações em que para um conjunto de dados é necessário atualizar um ou mais valores de atributos. Como exemplo, podemos citar a situação em que a empresa passou por uma reforma com nova renomeação dos departamentos principais. Nesse caso, é necessário fazer alterações para cada departamento. Se apenas os nomes mudarem, o problema será resolvido muito rapidamente. Mas se muda a codificação de cada componente de toda a produção, o que, via de regra, serve de chave primária, então isso, por sua vez, acarreta mudanças nas informações e para cada funcionário.
Para resolver o problema em consideração, pode-se aplicar Operador DML - Atualizar. MySQL-o servidor, operando com um grande número de registros,com a ajuda da instrução de atualização, executará a solicitação solicitada e resolverá o problema. Mas às vezes, durante a atualização, surgem dificuldades que não são totalmente claras e difíceis de explicar. É sobre as dificuldades de atualização de registros que serão discutidas a seguir.
O comando Atualizar, conforme observado acima,usado para atualizar os registros existentes em uma tabela. Mas, na prática, os clientes que acessam os servidores de banco de dados nem sempre sabem se um determinado conjunto de dados existe ou não nas tabelas. Uma verificação preliminar da disponibilidade de dados no banco de dados para atualizações subsequentes leva a custos de tempo e desperdício de recursos do servidor.
Para evitar que isso aconteça, o DBMS fornece um design especial MySQL - Inserir * Atualizaronde uma inserção ou atualização podeexecutado independentemente um do outro. Ou seja, quando houver um registro na tabela para uma determinada condição, ocorrerá uma atualização. Se nenhum dado for encontrado para a condição em questão, o servidor MySQL será capaz de executar a solicitação de adição de dados.
Um componente importante deste Inserir-consulta no sistema de gerenciamento de banco de dados MySQL - "Atualização de chave duplicada" console. A sintaxe completa da solicitação é a seguinte: “inserir em test_table (Employer_id, name) valores (1, "Abramov") na atualização de chave duplicada last_modified = NOW ();".
Esse pedido pode ser usado pararegisto das acções dos colaboradores, por exemplo, determinação do tempo de passagem na entrada do empreendimento com posterior cálculo do intervalo e identificação de atrasos. Para não fazer vários lançamentos na tabela, basta manter os registros de cada funcionário em constante atualização. É o design de cheque duplicado que permite que você faça isso.
Considerando o exemplo acima de registro das ações dos funcionários no posto de controle, o uso de auto-aumento (auto_incremento) campos que são comumente usados para preencher valores de chave primária (primário_chave) Ao usar o comando Atualização MySQL em construção com Inserir auto_incremento, os campos estão constantemente aumentando.
Da mesma forma, tudo acontece quandouma construção de substituição é usada se duplicatas forem encontradas. O valor de "incremento automático" é aumentado mesmo quando não é necessário. Por causa disso, existem problemas com valores ausentes ou transbordamento de um intervalo, o que subsequentemente leva ao mau funcionamento dos sistemas de gerenciamento de banco de dados.
O problema descrito deve ser considerado Rede-desenvolvedores, já que é mais comum em sistemas multiusuário (sites, portais, etc.), quando um grande número de procedimentos são realizados no sistema Inserir e Atualize o MySQL.
PHP-o banco de dados é acessado com muita frequência. Portanto, o alcance do valor máximo pelos campos definidos como Incremento automático, acontece rapidamente e, ao analisar as dificuldades surgidas, não será possível estabelecer de imediato os motivos.
Portanto, os desenvolvedores são aconselhados a abordar cuidadosamente o uso da estrutura na chave duplicada em um time atualização do mysql. selecione - consultas ao acessar o servidor de banco de dadosfuncionará sem erros, mas adicionar novos registros ao banco de dados é repleto de situações desagradáveis, que subsequentemente levam a sérios problemas. Como alternativa, recomenda-se que os campos de incremento automático verifiquem primeiro a existência de registros para eles e depois os atualizem.