InformáticaBases de datos

"Trampas" DML-Team Actualización MySQL

Cada desenvolvedor, que tivo que traballar con bases de datos, para afrontar os DML-operadores (traducido do inglés - .. "Data Manipulation Language"), como Select, Insert, Delete e Update. MySQL-transporte tamén usa o seu arsenal de todos os comandos anteriores.

Estas declaracións son loxicamente falando sobre a súa cita - selección de rexistros, insira novos valores, actualización de datos existentes, completa, ou de acordo coas condicións especificadas, a eliminación da información na base de datos. Os materiais de formación teóricas son descritas en detalle o principio de funcionamento de cada orde ea súa sintaxe, pero en ningún lugar atopou referencias para as dificultades que poidan xurdir na práctica durante o seu uso. Este material estará dedicada á consideración dalgúns deles.

Brevemente sobre DML-declaracións (insert)

Antes de continuar, é necesario unha vez lembrar máis detalles sobre a finalidade de cada función. Teremos dous operadores interesados en máis detalles: Inserir e Update, porque depende deles derivan as principais dificultades no procesamento de grandes cantidades de datos.

Debe comezar co comando Inserir, e entón gradualmente pasar ao Update. sistema MySQL, como calquera outro banco de datos moderno, use o funcionamento Inserir para engadir novos rexistros táboas existentes base de datos. A sintaxe desta operación é moi sinxela e directa. Contén unha lista de campos que se fará para os valores, o destino - nome da táboa - e inmediatamente presentou unha lista de datos. Cada vez que executa a base de datos Insert será actualizado con novos valores.

instrución de actualización

Con todo, na práctica, moitas veces hai situacións en que, por algún conxunto de datos dun ou máis valores de atributos para actualizar. Como exemplo, unha situación na que a empresa foi a reforma con máis de nome dos principais departamentos. Neste caso é necesario facer cambios para cada departamento. Só cambiando o nome, entón o problema pode ser resolto moi rapidamente. Con todo, se cambiar a codificación de cada compoñente de toda a produción, o que xeralmente funciona como chave primaria, que é, á súa vez, implica cambios para a información e para cada empregado.

Update - DML-operador pode ser aplicado para solucionar este problema. servidor de MySQL, operando con un gran número de entradas, coa axuda dunha instrución de actualización, realizar a consulta requirida e resolver o problema. Pero ás veces se producen durante a actualización non é moi clara e difícil de explicar a complexidade. Iso é o que fai que a dificultade de rexistros actualizados, serán discutidas máis adiante.

Que pouco se dixo na teoría ...

Actualización Team, como mencionado arriba, é usado para actualizar rexistros existentes na táboa. Pero, na práctica, os clientes que acceden os servidores de base de datos non sempre son coñecidos, hai un certo conxunto de datos nas táboas ou non. Preliminar comprobar a dispoñibilidade dos datos na base de datos para a posterior actualización dos resultados na lento e desperdicio de recursos do servidor.

Para evitar isto, nunha estrutura especial base de datos MySQL - Inserir * Update, en que a inserción ou actualización pode ser realizada de forma independente un do outro. É dicir, cando a táboa ten unha entrada para unha condición particular, será actualizado. Se as condicións consideradas, os datos non serán atopados, MySQL-servidor é capaz de realizar o pedido subidos de datos.

actualizar os datos cando hai duplicados

Un compoñente importante deste Inserir - solicitude para o sistema de xestión de base de datos MySQL - «En Duplicate Key Actualización» prefixo. A sintaxe completa da consulta é a seguinte: «inserir test_table (employer_id, nome) valores ( 1, 'Abramov') na chave duplicada actualización LAST_MODIFIED = NOW (); ".

Esta petición pode ser usada para rexistrar as accións de, por exemplo, determinar o tempo empresa intersección paso seguido por conta de intervalo de tempo e demora de detección. Para non facer a táboa algúns rexistros, o suficiente para cada funcionario para manter rexistros con actualización constante. É un proxecto de verificación duplicado permite.

De feito os problemas ...

Tendo en conta o exemplo anterior da acción persoal de rexistro na entrada, xa que o problema é o uso samouvelichivayuschihsya (_ incremento auto) campos, que adoitan ser utilizados para cubrir os valores de chave primaria (primary key _). Se está a usar comandos Update MySQL en deseño con Insert auto _ incremento, o campo está aumentando constantemente.

Do mesmo xeito, todo acontece cando se utiliza unha construción de substitución en caso de detección de duplicados. valor "Auto-incremento" é aumentado ata no caso de que non é necesario. Debido a iso, os problemas xorden valores de pase de estourido ou intervalos que posteriormente levan ao mal funcionamento de sistemas de xestión de base de datos.

O máis habitual é que o problema

Describe o problema debe ser considerado desenvolvedores web, como é máis común en sistemas multi-usuario (sitio web, portais, etc.. P.), cando o sistema se executa un gran número de procedementos Insert e actualizar MySQL.

PHP - chamamento á base miúdo realizada. Polo tanto, para acadar marxes máximas, definidas como auto_increment, ocorre rapidamente, e na análise das dificultades atopadas para establecer as razóns simplemente non vai funcionar.

Polo tanto, os desenvolvedores son encoraxados a estar atento ao uso do proxecto en chave duplicada no update de mando MySQL. seleccione - consultas ao acceder ao servidor de base de datos pode funcionar sen erros, pero a adición de novos rexistros para a base de datos está chea de situacións desagradables no futuro, levar a serios problemas. Alternativamente, recomenda-se para campos auto-incremento inicialmente comprobar os seus rexistros, a continuación, mantelos actualizados.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 gl.unansea.com. Theme powered by WordPress.