DatamaskinerDatabaser

"Fallgruver" DML-Team Oppdater MySQL

Hver programmerer, som måtte jobbe med databaser, møtt med DML-operatører (oversatt fra engelsk - .. "Data Manipulation Language"), for eksempel Select, Sett inn, Slett og Oppdatering. MySQL-transport benytter også sin arsenal av alle de ovennevnte kommandoer.

Disse uttalelsene er logisk å snakke om utnevnelsen - velge poster, sette inn nye verdier, oppdatering av eksisterende data, komplett, eller i henhold til de angitte forhold, fjerning av informasjonen i databasen. De teoretiske opplærings materialer er beskrevet i detalj prinsippet for driften av hver kommando og deres syntaksen, men ingensteds funnet referanser til de vanskeligheter som kan oppstå i praksis under bruk. Dette materialet vil bli viet til vurdering av noen av dem.

Kort om DML-uttalelser (Sett)

Før du fortsetter videre, er det nødvendig igjen å huske flere detaljer om hensikten med hver funksjon. Vi vil ha to operatører som er interessert i mer detalj: Sett og Update, fordi den er avhengig av dem utlede de største vanskeligheter ved behandling av store mengder data.

Du må starte med kommandoen Sett inn, og deretter gradvis flytte til Update. MySQL-systemet, som alle andre moderne database, bruker du Sett operasjon for å legge til nye poster til eksisterende tabeller database. Syntaksen til denne operasjonen er svært enkel og grei. Den inneholder en liste over områder som vil bli gjort til verdiene, målet - navnet på tabellen - og umiddelbart innført en liste over data. Hver gang du utfører Sett databasen vil bli oppdatert med nye verdier.

Oppdater statement

Men i praksis, ganske ofte det er situasjoner som for noen sett med data en eller flere attributtverdier som skal oppdateres. Som et eksempel, en situasjon hvor selskapet var reformen med ytterligere døpe av de viktigste avdelingene. I dette tilfellet er det nødvendig å gjøre endringer for hver avdeling. Hvis bare endre navnet, så problemet kan løses svært raskt. Hvis imidlertid endre kodingen av hver komponent av hele produksjonen, som vanligvis tjener som primærnøkkel, som er i sin tur medfører endringer i informasjonen og for hver ansatt.

Update - DML-operatør kan brukes for å løse dette problemet. MySQL- server, som opererer med et stort antall oppføringer, med hjelp av en oppdatering uttalelse, utføre nødvendige spørringen og løse problemet. Men noen ganger oppstå under oppdateringen er ikke helt klart og vanskelig å forklare kompleksitet. Det er hva som forårsaker vanskeligheter med poster oppdatert, vil bli diskutert videre.

Det lille som har blitt sagt i teorien ...

Update Team, som nevnt ovenfor, brukes til å oppdatere eksisterende poster i tabellen. Men i praksis, klienter som bruker databasen servere er ikke alltid kjent, er det et visst sett av data i tabellene eller ikke. Foreløpige sjekke tilgjengeligheten av data i databasen for den påfølgende oppdatering av resultater i tidkrevende og avfall av server evner.

For å unngå dette, i en egen database MySQL struktur - Sett * Update, der innsatsen eller oppdatering kan utføres uavhengig av hverandre. Det er da bordet har en oppføring for en bestemt tilstand, vil bli oppdatert. Dersom forholdene vurderes, data vil ikke bli funnet, er MySQL-serveren i stand til å utføre dataopplastinger forespørsel.

Oppdater data når det er duplikater

En viktig del av denne Insert - forespørsel til MySQL database management system - «On Duplicate Key Update» prefiks. Den komplette syntaksen spørringen er som følger: «Sett inn test_table (employer_id, navn) verdier ( 1, 'Abramov') på duplikatnøkkel oppdatering LAST_MODIFIED = NÅ (); ".

En slik forespørsel kan brukes til å registrere virkningen av, for eksempel, bestemme skjæringspunktet passeringstiden foretak, etterfulgt av å telle tidsintervall og deteksjon forsinkelse. For ikke å gjøre tabellen noen poster, nok for hver ansatt til å føre protokoll med konstant oppdatering. Det er et duplikat sjekk design gjør det.

Egentlig problemer ...

Tatt i betraktning det ovennevnte eksempel på registrering personalet handling ved inngangen, som er problemet ved bruk samouvelichivayuschihsya (auto _ tilvekst) felt, som vanligvis brukes for å fylle de primære nøkkelverdier (primær _ nøkkel). Hvis du bruker MySQL Oppdater-kommandoen i design med Insert auto _ tilvekst, feltet er stadig økende.

Likeledes, skjer alt når du bruker en erstatning konstruksjon i tilfelle av duplikat deteksjon. "Auto-økning" verdien økes selv i tilfeller der det ikke er nødvendig. På grunn av dette oppstår det problemer overløp sende verdier eller områder, som senere fører til funksjonsfeil databaseforvaltningssystemer.

Mest sannsynlig problemet

Beskriver problemet må vurderes web-utviklere, som det er mest vanlig i flerbrukersystemer (nettsteder, portaler, og P. osv.), Når systemet er utført et stort antall prosedyrer Sett og oppdatere MySQL.

PHP - appell til basen svært ofte utført. Derfor, for å oppnå maksimale marginer, definert som AUTO_INCREMENT, skjer raskt, og i analysen av vanskelighetene å etablere de grunner bare ikke vil fungere.

Derfor er utviklere oppfordres til å være oppmerksomme på bruk av design på duplikatnøkkel kommandoen mysql oppdatering. velg - spørsmål ved tilgang til database-serveren vil fungere uten feil, men i tillegg til nye poster til databasen er nervøs med ubehagelige situasjoner i fremtiden føre til alvorlige problemer. Alternativt, er det anbefalt for auto-tilvekst felt sjekke utgangspunktet for sine poster, og deretter holde dem oppdatert.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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