RačunalaBaze podataka

"Zamke" DML-Team Update MySQL

Svaki programer, koji je imao za rad sa bazama podataka, suočeni sa DML-operatora (prevedeno sa engleskog - .. "Data Manipulation Language"), kao što Select, Insert, Delete i Update. MySQL-transport koristi svoj arsenal sve gore navedene naredbe.

Ove izjave su logički govori o svom imenovanju - odabir zapisa, ubacite nove vrijednosti, ažuriranje postojećih podataka, potpuna, ili u skladu s navedenim uvjetima, uklanjanje informacija u bazi podataka. Materijala teorijske obuke su detaljno opisani u princip rada svake naredbe i njihove sintakse, ali nigdje naći reference na teškoće koje se mogu javiti u praksi tokom upotrebe. Ovaj materijal će biti posvećena razmatranju nekih od njih.

Ukratko o DML-izjave (Insert)

Prije nego što nastavite dalje, potrebno je još jednom podsjetiti više detalja o svrsi svake funkcije. Mi ćemo imati dva operatera zanimaju detaljnije: Ubaci i Update, jer to zavisi od njih izvući glavne poteškoće u obradi velike količine podataka.

Morate početi sa komandom Umetni, a zatim postepeno prešli na Update. MySQL sistem, kao i svaki drugi moderni baze podataka, koristite operaciju Insert za dodavanje novih zapisa u postojećim tablicama baze podataka. Sintaksa ove operacije je vrlo jednostavan i jasan. Sadrži popis polja koja će biti na vrijednosti, odredište - naziv stola - i odmah uveo popis podataka. Svaki put kada vršite baze podataka Umetnite će se ažurirati s novim vrijednostima.

ažuriranje izjava

Međutim, u praksi, vrlo često postoje situacije da za neke skup podataka jedne ili više vrijednosti atributa da se ažurira. Kao primjer, situaciju u kojoj je kompanija bila reforma s daljnjim preimenovanje glavnog odjela. U tom slučaju potrebno je napraviti promjene za svaki odjel. Ako samo mijenja ime, a zatim se problem može riješiti vrlo brzo. Međutim, ako mijenja kodiranje svake komponente od ukupne proizvodnje, koja obično služi kao primarni ključ, koji je, pak, podrazumijeva promjene u informacije i za svakog zaposlenog.

Update - DML-operater se može primijeniti na rješavanje ovog problema. MySQL- server, koji posluje sa velikim brojem unosa, uz pomoć jedne izjave ažuriranja, izvršiti potrebne upita i riješiti problem. Ali ponekad se javljaju tokom ažuriranje nije sasvim jasno i teško objasniti složenost. To je ono što uzrokuje poteškoće evidencije ažuriraju, će se raspravljati dalje.

Ono malo što je rečeno u teoriji ...

Ažuriranje tima, kako je već rečeno, koristi se za ažuriranje postojeće zapise u tablici. Ali u praksi, klijenti pristupaju poslužiteljima baza podataka nisu uvijek poznate, postoji određeni skup podataka u tabelama ili ne. Preliminarni provjeriti dostupnost podataka u bazi podataka za naknadno ažuriranje rezultata u dugotrajan i gubljenje mogućnosti servera.

Da biste to izbegli, u posebnoj strukturi MySQL baza podataka - Umetnite * Update, u kojoj je umetanja ili ažuriranja može se izvršiti nezavisno jedan od drugog. Tada je sto ima unos za određeni stanju, će biti ažurirana. Ako su uslovi smatra, neće se naći podaci, MySQL-server je u stanju obavljati podataka dodate zahtjev.

Ažuriranje podataka kada postoje duplikati

Važna komponenta ovog Insert - zahtjev za MySQL sistem za upravljanje bazama podataka - «Na duplikata Key Update» prefiks. Kompletan Sintaksa upita je kako slijedi: «ubacite u test_table (employer_id, ime) vrijednosti ( 1, 'Abramov') na duplikat ključa ažuriranje LAST_MODIFIED = NOW (); ".

Takav zahtjev može se koristiti za snimanje akcije, na primjer, odrediti vrijeme poduhvata raskrsnici prolaz zatim računajući vremenski interval i kašnjenja otkrivanja. Kako se ne bi se za stolom nekoliko zapisa, što je dovoljno za svakog zaposlenog da vodi evidenciju sa stalnim ažuriranjem. To je duplikat dizajn ček to dozvoljava.

Zapravo problema ...

S obzirom na gore primjer djelovanja registraciju osoblje na ulazu, kao problem je upotreba samouvelichivayuschihsya (auto _ povećanje) polja, koji se obično koriste za popunjavanje primarni ključ vrijednosti (primarni _ ključ). Ako koristite MySQL Update komanda u dizajnu sa uloškom auto _ prirast, polje je u stalnom porastu.

Isto tako, sve što se događa kada se koristi zamjena konstrukcija u slučaju duplikata detekcije. "Auto-prirast" vrijednost se povećava čak iu slučaju kada to nije potrebno. Zbog toga, problemi se javljaju dodavanje vrijednosti preljev ili opsega, koja je naknadno dovesti do kvara sistema za upravljanje bazama podataka.

Najvjerojatnije je problem

Opisuje problem mora uzeti u obzir web programeri, kao što je to najčešće u sistemima sa više korisnika (web stranica, portala, i tako dalje. P.), kada je sistem izvršen veliki broj postupaka Insert i ažuriranje MySQL.

PHP - žalba na bazi vrlo često obavlja. Stoga, da bi se postigla maksimalna margine, definiran kao AUTO_INCREMENT, brzo se javlja, au analizu poteškoća utvrditi razloge jednostavno neće raditi.

Stoga, programeri su ohrabreni da budu pažljivi na korištenje dizajna na duplikat ključa u ažuriranje komandi MySQL. select - upita prilikom pristupa poslužitelj baze podataka će raditi bez greške, ali dodavanje novih zapisa u bazu podataka je puna neprijatne situacije u budućnosti dovesti do ozbiljnih problema. Alternativno, preporučuje se za auto-povećanje polja u početku provjeriti svoje podatke, a zatim ih držati ažurirana.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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