..
E 'bem sabido que uma gestão correta de consulta é um pré-requisito para a implementação estável e eficiente.
Neste artigo iremos apresentar uma sintaxe pouco conhecido, mas muito poderoso, eu estou falando sobre a cláusula ON DUPLICATE KEY UPDATE.
Esta cláusula é utilizada durante uma instrução INSERT e sua finalidade é verificar, antes da inserção, há uma duplicação de uma chave primária (chave primária) ou uma chave única (UNIQUE KEY), e se isso acontecer o motor un'UPDATE MySQL irá inserir vez.
A vantagem desta cláusula é clara: você escreve uma única consulta em vez de dois, com vantagens em termos de desempenho e limpeza de código.
Vamos dar um exemplo. Suponha que nós queremos fazer um script simples que executa o log de visitantes ao nosso site. Abaixo a estrutura da tabela do nosso DB:
Graças à sintaxe INSERT ... ON DUPLICATE KEY UPDATE ... podemos alcançar o mesmo resultado com uma única consulta:
Ip_visitatori INSERT INTO VALUES ('123 .123.123.123 ', 1, NOW ())
ON KEY DPLICATE
ATUALIZAÇÃO numero_visite numero_visite = + 1, ultima_visita = NOW ();
Assim, se o IP não é a inserção é feita, caso contrário você corre uma simples atualização do registro afetado.
Usando essa sintaxe permite que você obtenha um benefício em termos de desempenho igual a 30%.
Com um pouco de imaginação e criatividade da cláusula em questão não pode ser muito útil em várias circunstâncias.
Por exemplo, podemos usá-lo em combinação com uma condição.
Aqui está um exemplo: Suponha que você tenha uma tabela de um site de leilões on-line hipotética estruturado da seguinte forma:
INSERT INTO propostas VALUES (1, 120) ON KEY DPLICATE ATUALIZAÇÃO migliore_offerta = IF (VALUES (migliore_offerta) <120, 120, VALUES (migliore_offerta))Através de uma consulta simples resolvemos de uma só vez ... Caso contrário, teríamos de usar várias consultas, resultando em desperdício de recursos (e um risco maior de erros).
| |
MS Access (Curso)
Saiba como criar e gerenciar bancos de dados com facilidade e rapidez. A partir de 29 €. |
| |
MySQL (Curso)
Gestão de banco de dados open-source. A partir de 39 €. |
| |
SQL e Banco de Dados (Curso)
Criar e gerenciar bancos de dados relacionais. A partir de 39 €. |