/ / "Zamke" DML-naredbe ažuriraju MySQL

"Zamke" DML-naredbe Update MySQL

Svaki programer koji je morao raditi s bazama podataka naišao je na DML operatore (po. s engleskog - "jezik za manipulaciju podacima") kao što su Odaberi, Umetnuti, Izbrisati i ažuriranje. MySQL okruženje također koristi sve gore navedene naredbe u svom arsenalu.

Ovi operatori logično govore o svomdodjeljivanje - odabir zapisa, umetanje novih vrijednosti, ažuriranje postojećih podataka, kompletno ili, prema zadanim uvjetima, brisanje podataka iz baze podataka. U teorijskim materijalima za obuku detaljno su opisani princip rada svake naredbe i njihova sintaksa, međutim, nigdje se ne spominju poteškoće koje se mogu pojaviti u praksi tijekom uporabe. Ovaj će materijal biti posvećen razmatranju nekih od njih.

mysql umetni ažuriranje odaberi

DML operateri ukratko (umetanje)

Prije nastavka daljnjeg postupka potrebno je još jednom detaljnije podsjetiti na svrhu svake od funkcija. Pobliže će nas zanimati dva operatora: Umetnuti i ažuriranje, budući da upravo od njih nastaju glavne poteškoće pri obradi velikih količina podataka.

mysql umetni ažuriranje

Morate započeti s naredbom Umetnuti, a zatim glatko idite na Ažuriranje. MySQL sustav, kao i bilo koji drugi moderni DBMS, koristi operaciju Umetnuti za dodavanje novih unosa postojećimtablice baze podataka. Sintaksa ove operacije vrlo je jednostavna i jasna. Sadrži nabrajanje polja u koja će se unijeti vrijednosti, odredište - naziv tablice - i sam popis unesenih podataka. Svaki put kada pokrenete naredbu Umetnuti baza podataka bit će ažurirana novim vrijednostima.

Izvještaj o ažuriranju

Međutim, u praksi ih često imasituacije da je za određeni skup podataka potrebno ažurirati jednu ili više vrijednosti atributa. Kao primjer možemo navesti situaciju kada je poduzeće podvrglo reformi s daljnjim preimenovanjem glavnih odjela. U tom je slučaju potrebno izvršiti promjene za svaki odjel. Ako se samo imena promijene, tada se problem rješava vrlo brzo. Ali ako se promijeni kodiranje svake komponente cjelokupne proizvodnje, koja u pravilu služi kao primarni ključ, onda to za sobom povlači promjene u informacijama i za svakog zaposlenika.

ažurirati mysql

Da biste riješili problem koji se razmatra, možete se prijaviti DML operator - Ažuriranje. MySQL-poslužitelj koji radi s velikim brojem zapisa,uz pomoć izjave o ažuriranju izvršit će traženi zahtjev i riješiti problem. Ali ponekad se tijekom ažuriranja pojave poteškoće koje nisu posve jasne i teško objašnjive. Riječ je o poteškoćama ažuriranja zapisa o kojima će biti riječi kasnije.

Ono malo što se govori u teoriji ...

Naredba Ažuriranje, kao što je gore spomenuto,koristi se za ažuriranje postojećih zapisa u tablici. Ali u praksi klijenti koji pristupaju poslužiteljima baza podataka ne znaju uvijek postoji li određeni skup podataka u tablicama ili ne. Preliminarna provjera dostupnosti podataka u bazi podataka za naknadna ažuriranja dovodi do vremenskih troškova i izgubljenih mogućnosti poslužitelja.

Da se to ne bi dogodilo, DBMS pruža poseban dizajn MySQL - Umetni * Ažuriranjeu kojem umetak ili ažuriranje mogutrčati neovisno jedni o drugima. Odnosno, kad u tablici postoji zapis za određeno stanje, dogodit će se ažuriranje. Ako za predmetno stanje nisu pronađeni podaci, MySQL poslužitelj moći će izvršiti zahtjev za dodavanjem podataka.

Ažuriranje podataka kada postoje duplikati

Važna komponenta ovoga Umetnuti-upit u sustavu za upravljanje bazama podataka MySQL - "O dvostrukom ažuriranju ključa" konzola. Kompletna sintaksa zahtjeva je sljedeća: “umetnuti u test_table (Employer_id, name) vrijednosti (1, "Abramov") na dupliciranom ažuriranju ključa last_modified = SADA ();”.

MySQL na dvostrukom ažuriranju ključa

Takav zahtjev se može iskoristiti zaregistracija radnji zaposlenika, na primjer, određivanje vremena prelaska ulaza u poduzeće s naknadnim izračunavanjem vremena prekida i utvrđivanje kašnjenja. Da se u tablicu ne bi unijelo nekoliko unosa, dovoljno je voditi evidenciju za svakog zaposlenika uz stalno ažuriranje. Dizajn provjere duplikata omogućuje vam to.

Zapravo o problemima ...

Uzimajući u obzir gornji primjer registracije radnji zaposlenika na punktu, upotreba samopovećanja (auto_prirast) polja koja se obično koriste za popunjavanje vrijednosti primarnog ključa (primarni_ključ). Prilikom korištenja naredbe MySQL ažuriranje u gradnji sa Umetnuti auto_prirast, polja se neprestano povećavaju.

Slično se sve događa kadazamjenski konstrukt koristi se ako se pronađu duplikati. Vrijednost "automatskog povećanja" povećava se čak i kada to nije potrebno. Zbog toga postoje problemi s nedostajućim vrijednostima ili prekoračenjem raspona, što kasnije dovodi do kvarova u sustavima za upravljanje bazama podataka.

Najvjerojatnije će izazvati problem

Opisani problem mora se uzeti u obzir mreža- programeri, jer je to najčešće u višekorisničkim sustavima (internetske stranice, portali itd.), kada se u sustavu izvodi velik broj postupaka Umetnuti i Ažurirajte MySQL.

PHP-bazi podataka pristupa se vrlo često. Stoga je postizanje maksimalne vrijednosti poljima definiranim kao auto_increment, događa se brzo, a pri analizi nastalih poteškoća neće biti moguće utvrditi razloge odmah.

 ažurirati mysql php

Stoga se programerima savjetuje da pažljivo pristupe upotrebi konstrukta na dupliciranom ključu u timu mysql ažuriranje. Odaberi - upite prilikom pristupa poslužitelju baze podatakaradit će bez grešaka, ali dodavanje novih zapisa u bazu podataka opterećeno je neugodnim situacijama, koje kasnije vode do ozbiljnih problema. Alternativno se preporučuje automatsko povećavanje polja da prvo provjere postojanje zapisa za njih, a zatim ih ažuriraju.