"Zamke" DML-naredbe Update MySQL

računala

Svaki programer koji je morao raditi s bazama podataka suočavao se sa DML operaterima (po. s engleskim. - "jezik za manipulaciju podacima"), kao što je odabrati, Umetanje, izbrisati i ažuriranje. MySQL okruženje također koristi sve gore navedene naredbe u svom arsenalu.

Ovi operatori logično govore o njihovomsvrha - odabir zapisa, umetanje novih vrijednosti, ažuriranje postojećih podataka, završetak ili prema određenim uvjetima, brisanje podataka u bazi podataka. Podučavanje teorijskih materijala detaljno opisuje radni princip svakog tima i njihovu sintaksu, ali se ne spominje poteškoće koje se mogu pojaviti u praksi tijekom upotrebe. Ovaj će materijal biti posvećen razmatranju nekih od njih.

mysql insert update select

Ukratko o DML operaterima (Insert)

Prije nastavka, potrebno je ponovo podsjetiti na svrhu svake od funkcija. Bit će više zainteresirani za dva operatora: Umetanje i ažuriranje, s obzirom na to da se glavne poteškoće pojavljuju prilikom obrade velikih količina podataka.

mysql insert update

Počnite s naredbom Umetanje, i onda se glatko kretati Update. MySQL Sustav, kao i svaki drugi moderni DBMS, koristi operaciju Umetanje za dodavanje novih stavki postojećimtablice baze podataka. Sintaksa ove operacije je vrlo jednostavna i jednostavna. Sadrži popisivanje polja u kojima će se unositi vrijednosti, odredište - naziv tablice - i popis unosa izravno. Na svakom izvršenju naredbi Umetanje Baza će se ažurirati novim vrijednostima.

Ažuriraj operatera

Međutim, u praksi često nastajuSituacija je da za jedan skup podataka, jedna ili više atributnih vrijednosti moraju biti ažurirane. Kao primjer, možemo navesti situaciju kada je poduzeće prošlo reformu s daljnjim preimenovanjem glavnih odjela. U tom slučaju, potrebno je izvršiti izmjene za svaki odjel. Ako se samo imena mijenjaju, problem se rješava vrlo brzo. No, ako se kodiranje svake komponente cjelokupne proizvodnje promijeni, što u pravilu služi kao primarni ključ, to zauzvrat podrazumijeva promjene podataka i svakog zaposlenika.

ažurirati mysql

Može se primijeniti rješavanje problema u pitanju DML operater - Update. MySQL-poslužitelj, koji posluje s velikim brojem zapisa,uz pomoć operatora ažuriranja, ispunit će zahtijevani zahtjev i riješiti problem. Ali ponekad tijekom nadogradnje nema sasvim jasnih i teško objasniti poteškoće. Riječ je o tome što složenost ažuriranja zapisa, bit će raspravljano u nastavku.

Ono što se malo kaže u teoriji ...

Ažuriraj naredbu, kao što je gore navedenokoristi se za ažuriranje postojećih unosa u tablici. No, u praksi, klijenti koji pristupaju poslužiteljima baza podataka ne znaju uvijek postoji li određeni skup podataka u tablicama ili ne. Prethodna provjera dostupnosti podataka u bazi podataka za naknadno ažuriranje dovodi do dugotrajnih i izgubljenih funkcija poslužitelja.

Kako bi se to spriječilo, u DBMS-u se daje poseban dizajn. MySQL - Ubacite * Updateu kojem umetak ili ažuriranje moguizvoditi neovisno jedan o drugom. To jest, kada u tablici postoji unos za određeno stanje, pojavit će se ažuriranje. Ako se za taj uvjet ne pronađe podatak, MySQL poslužitelj će moći izvršiti zahtjev za dodavanje podataka.

Ažurirajte podatke s duplikatima

Važna komponenta ovoga Umetanje-upita u sustavu upravljanja bazom podataka MySQL - "Ažuriranje dvostrukog ključa" konzole. Puna sintaksa upita je sljedeća: "umetnite u vrijednosti test_table (employer_id, name) (1, "Abramov") na dvostrukom ažuriranju ključa last_modified = NOW ();”.

MySQL na dvostrukom ažuriranju ključa

Za takav se zahtjev može koristitisnimanje radnji zaposlenika, na primjer, određivanje vremena sjecišta prolaza poduzeća s naknadnim izračunom vremena prekida i otkrivanja kašnjenja. Kako ne bi napravili nekoliko unosa u tablici, dovoljno je voditi evidenciju svakog zaposlenika sa stalnim ažuriranjem. To je duplikat koji provjerava dizajn koji to dopušta

Zapravo o problemima ...

S obzirom na gore navedeni primjer o registraciji radnji zaposlenika na kontrolnoj točki, može se navesti uporaba self-heightening (auto_povećanje) koja se obično koriste za popunjavanje vrijednosti primarnih ključeva (osnovni_ključ). Kada koristite naredbu MySQL ažuriranje u izgradnji s Umetanje auto_prirast, polja stalno rastu.

Slično tome, sve se događa kadazamjenski dizajn koristi se u slučaju dvostrukog otkrivanja. Vrijednost "auto-increment" povećava se čak i kada to nije potrebno. Zbog toga postoje problemi nestalih vrijednosti ili prekoračenja rasponu, što naknadno dovodi do kršenja izvedbe sustava za upravljanje bazom podataka.

Najveća vjerojatnost problema

Opisani problem mora se razmotriti tkanje- programeri, kao što je to najčešći u multi-user sustavima (Internet stranice, portali, itd.), kada se u sustavu izvodi velik broj postupaka Umetanje i Ažuriraj MySQL.

PHP-pozivi na bazu podataka se izvode vrlo često. Dakle, maksimalna vrijednost polja definiranih kao auto_increment, to se brzo događa, i kada se analiziraju poteškoće koje su se pojavile, odmah je moguće ustanoviti uzroke.

 ažuriranje mysql php

Stoga se programerima preporučuje pažljivo razmotriti upotrebu dizajna. na dupliciranom ključu u timu mysql ažuriranje. odaberite - zahtjeva prilikom pristupa poslužitelju baze podatakaoni će raditi bez pogrešaka, ali dodavanje novih zapisa u bazu podataka je ispunjeno neugodnim situacijama koje potom dovode do ozbiljnih problema. Kao alternativa, za polja za automatsko povećavanje preporučuje se početno provjeravanje zapisa za njih, a zatim ih ažurirajte.