CalculatoareBaze de date

"Capcanele" DML-Team Actualizare MySQL

Fiecare programator, care a trebuit să lucreze cu baze de date, care se confruntă cu DML-operatorii (tradus din limba engleză - .. „Data Manipulation Language“), cum ar fi Select, Insert, Delete și Actualizare. MySQL de transport utilizează, de asemenea, arsenalul său de toate comenzile de mai sus.

Aceste declarații sunt în mod logic vorbind despre numirea sa - selectarea înregistrărilor, introduceți valori noi, actualizarea datelor existente, complete sau în conformitate cu condițiile specificate, eliminarea informațiilor din baza de date. Materialele de instruire teoretice sunt descrise în detaliu principiul de funcționare a fiecărei comenzi și sintaxa lor, dar nu a găsit nicăieri referiri la dificultățile care ar putea apărea în practică în timpul utilizării. Acest material va fi dedicat luarea în considerare a unora dintre ele.

Pe scurt despre DML-Declarații (Inserare)

Înainte de a trece mai departe, este necesar, din nou, să-și amintească mai multe detalii cu privire la scopul fiecărei funcții. Vom avea doi operatori interesați de mai multe detalii: Insert și Update, deoarece aceasta depinde de ele provin principalele dificultăți în procesarea unor cantități mari de date.

Trebuie să înceapă cu insertul de comandă, apoi trece treptat la Actualizare. MySQL sistem, la fel ca orice altă bază de date modernă, utilizați operațiunea Inserare pentru a adăuga înregistrări noi la tabele existente de baze de date. Sintaxa acestei operații este foarte simplă și directă. Acesta conține o listă de domenii care vor fi aduse la valorile, destinația - numele tabelului - și a introdus imediat o listă de date. De fiecare dată când efectuați baza de date Fragment va fi actualizat cu valori noi.

declaraţie de actualizare

Cu toate acestea, în practică, destul de des, există situații în care pentru un anumit set de date una sau mai multe valori de atribute care urmează să fie actualizate. Ca un exemplu, o situație în care compania a fost reforma cu redenumirii în continuare a principalelor departamente. În acest caz, este necesar să se facă modificări pentru fiecare departament. Dacă numai schimbarea numelui, atunci problema poate fi rezolvată foarte repede. Cu toate acestea, în cazul în care schimbarea de codificare a fiecărei componente a întregii producții, care de obicei servește drept cheie primară, care este, la rândul său, implică modificări ale informațiilor și pentru fiecare angajat.

Update - DML-operator poate fi aplicat pentru a rezolva această problemă. server de MySQL-, care funcționează cu un număr mare de intrări, cu ajutorul unei declarații de actualizare, executați interogarea necesară și să rezolve problema. Dar, uneori, apar în timpul actualizării nu este destul de clar și dificil de explicat complexitate. Aceasta este ceea ce cauzează dificultatea de înregistrări actualizate, vor fi discutate în continuare.

Ceea ce putin a fost spus în teorie ...

Actualizarea echipei, așa cum sa menționat mai sus, este utilizat pentru a actualiza înregistrările existente în tabel. Dar, în practică, clienții care accesează serverele de baze de date nu sunt întotdeauna cunoscute, există un anumit set de date în tabele sau nu. verificarea preliminară disponibilitatea datelor în baza de date pentru actualizarea ulterioară a rezultatelor în consumatoare de timp și a deșeurilor de capacități server.

Pentru a evita acest lucru, într - o structură specială de baze de date MySQL - Insert * Actualizare, în care inserția sau actualizarea poate fi efectuată în mod independent unul de celălalt. Aceasta este atunci când masa are o intrare pentru o anumită condiție, va fi actualizat. În cazul în care condițiile avute în vedere, datele nu vor fi găsite, MySQL-server este capabil de a efectua cereri de date de încărcări.

date de actualizare atunci când există duplicate

O componentă importantă a acestui Fragment - cerere către sistemul de management al bazei de date MySQL - «On Duplicate Key Update» prefix. Sintaxa completă a interogare este după cum urmează: «inserați în test_table (employer_id, nume) valori ( 1,«Abramov») pe tasta duplicat de actualizare LAST_MODIFIED = ACUM (); “.

O astfel de cerere poate fi utilizată pentru a înregistra acțiunile, de exemplu, determină întreprinderea de timp de trecere intersecție urmat de numărare interval de timp și de întârziere de detecție. Pentru a nu face masa de câteva înregistrări, suficient pentru fiecare angajat să țină evidențe cu actualizarea constantă. Acesta este un design de verificare duplicat permite.

De fapt probleme ...

Având în vedere exemplul de mai sus al acțiunii personalului de înregistrare la intrare, deoarece problema este utilizarea samouvelichivayuschihsya (auto _ creștere) câmpuri, care sunt de obicei utilizate pentru a umple valorile cheie primare (element _ primară). Dacă utilizați comanda Actualizare MySQL în design cu Inserare _ auto increment, câmpul este în continuă creștere.

De asemenea, tot ceea ce se întâmplă atunci când se utilizează o construcție de înlocuire în cazul detectării duplicat. „Auto-creștere“ valoare este crescută chiar și în cazul în care nu este necesară. Din acest motiv, apar probleme valori sau zone de trecere overflow, care conduc ulterior la funcționarea defectuoasă a sistemelor de management al bazelor de date.

Cel mai probabil problema

Descrie problema trebuie să fie luate în considerare Web-dezvoltatori, așa cum este cel mai frecvent în sistemele multi-utilizator (site - uri, portaluri, și așa mai departe. P.), Atunci când sistemul este executat un număr mare de proceduri Inserare și actualizarea MySQL.

PHP - apel la baza foarte des efectuate. Prin urmare, pentru a atinge marje maxime, definite ca AUTO_INCREMENT, are loc rapid, și în analiza dificultăților întâmpinate de a stabili motivele care pur și simplu nu va funcționa.

Prin urmare, dezvoltatorii sunt încurajați să fie atenți la utilizarea designului pe duplicat al cheii în actualizarea mysql comanda. selectați - interogări atunci când accesează serverul de baze de date va funcționa fără erori, dar adăugarea de înregistrări noi la baza de date este plină de situații neplăcute în viitor , duce la probleme serioase. În mod alternativ, este recomandat pentru câmpurile de auto-increment verifica inițial pentru înregistrările lor, și apoi țineți-le actualizate.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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