ComputereDatabaser

"Faldgruber" DML-Team opdatering MySQL

Hver programmør, der måtte arbejde med databaser, konfronteret med DML-operatører (oversat fra engelsk - .. "Data Manipulation Language"), såsom Select, Insert, Delete og Opdater. MySQL-transport anvender også sit arsenal af alle ovenstående kommandoer.

Disse udsagn er logisk at tale om hans udnævnelse - valg af optegnelser, indsætte nye værdier, opdatering af eksisterende data, komplet, eller i overensstemmelse med de angivne betingelser, fjernelse af oplysningerne i databasen. De teoretiske undervisningsmateriale er beskrevet i detaljer princippet om driften af hver kommando og deres syntaks, men ingen steder fundet henvisninger til de vanskeligheder, der måtte opstå i praksis under brug. Dette materiale vil blive afsat til vurdering af nogle af dem.

Kort om DML-sætninger (Insert)

Før vi går videre, er det nødvendigt igen at huske flere detaljer om formålet med hver funktion. Vi vil have to operatører interesseret i flere detaljer: Indsæt og Update, fordi det afhænger af dem udlede de største vanskeligheder i behandling af store mængder data.

Du skal starte med kommandoen Indsæt, og derefter gradvist flytte til opdatering. MySQL-system, som enhver anden moderne database, skal du bruge Insert operation for at tilføje nye poster til eksisterende tabeller database. Syntaksen for denne operation er meget enkel og ligetil. Den indeholder en fortegnelse over felter, som vil blive foretaget i de værdier, destination - navnet på den tabel - og straks indført en liste af data. Hver gang du udfører Indsæt databasen vil blive opdateret med nye værdier.

opdater opgørelse

Men i praksis, ganske ofte er der situationer, som for nogle datasæt en eller flere attributværdier skal opdateres. Som et eksempel, en situation, hvor selskabet var reformen med yderligere omdøbning af de vigtigste afdelinger. I dette tilfælde er det nødvendigt at foretage ændringer for hver afdeling. Hvis der kun at ændre navnet, så problemet kan løses meget hurtigt. Men hvis ændre kodningen af hver komponent af hele produktionsprocessen, som normalt tjener som den primære nøgle, der er til gengæld medfører ændringer i oplysningerne og for hver medarbejder.

Opdatering - DML-operatør kan anvendes til at løse dette problem. MySQL- server, der opererer med et stort antal poster, med hjælp af en opdatering erklæring, udføre den ønskede forespørgsel og løse problemet. Men nogle gange forekomme under opdateringen er ikke helt klart, og svært at forklare kompleksitet. Det er, hvad der forårsager det er vanskeligt at optegnelser opdateret, vil blive drøftet yderligere.

Hvad lidt er blevet sagt i teorien ...

Opdatering Team, som nævnt ovenfor, der bruges til at opdatere eksisterende poster i tabellen. Men i praksis, klienter adgang til databasen servere er ikke altid vidst, at der er et bestemt sæt af data i tabellerne eller ej. Indledende tjekke tilgængeligheden af data i databasen for den efterfølgende ajourføring af resultater i tidskrævende og spild af server kapaciteter.

For at undgå dette, i en særlig database MySQL struktur - Indsæt * Update, hvor kan udføres indsatsen eller opdatering uafhængigt af hinanden. Det er, når bordet har en post for en bestemt tilstand, vil blive opdateret. Hvis betingelserne i betragtning, dataene vil ikke blive fundet, MySQL-serveren er i stand til at udføre data uploads anmodning.

Opdater data, når der er dubletter

En vigtig del af denne Indsæt - anmodning til MySQL-database management system - «On Duplicate Key Opdatering» præfiks. Den komplette syntaks af forespørgslen er som følger: «indsætte i test_table (employer_id, navn) værdier ( 1, 'Abramov') på duplikeret nøgle opdatering LAST_MODIFIED = NU (); ".

En sådan anmodning kan bruges til at registrere handlinger, for eksempel bestemme skæringspunktet passage tid virksomhed fulgt ved at tælle tidsinterval og afsløring forsinkelse. For ikke at gøre tabellen et par poster, nok for den enkelte medarbejder at føre registre med konstant opdatering. Det er en dublet kontrol design gør det.

Faktisk problemer ...

På baggrund af ovenstående eksempel af registreringen personale handling ved indgangen, da problemet er anvendelsen samouvelichivayuschihsya (auto _ tilvækst) felter, der typisk anvendes til at fylde de primære nøgleværdier (primær _ nøgle). Hvis du bruger MySQL Opdatering kommando i design med Insert auto _ tilvækst, er feltet konstant stigende.

Ligeledes sker alt, når anvendelse af en udskiftning konstruktion i tilfælde af dubletter. "Auto-tilvækst" værdien øges, selv i det tilfælde, hvor det ikke er nødvendigt. På grund af dette, opstår der problemer overflow pass værdier eller områder, som efterfølgende fører til fejlfunktion af databasesystemer.

Mest sandsynligt problemet

Beskriver problemet må anses Web-udviklere, som det er mest almindeligt i flerbrugersystemer (hjemmesider, portaler, og så videre. P.), Når systemet er udført et stort antal procedurer Indsæt og opdatere MySQL.

PHP - appel til basen meget ofte udført. Derfor, for at opnå maksimale avancer, defineret som auto_increment, sker hurtigt, og i analysen af de vanskeligheder at fastslå årsagerne vil bare ikke arbejde.

Derfor er udviklerne opfordres til at være opmærksomme på brugen af designet på duplikeret nøgle i kommandoen mysql opdatering. vælg - forespørgsler ved adgang databaseserveren vil fungere uden fejl, men tilføjelsen af nye poster til databasen er fyldt med ubehagelige situationer i fremtiden føre til alvorlige problemer. Alternativt anbefales det til auto-tilvækst felter oprindeligt tjekke for deres poster, og derefter holde dem opdateret.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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