..
Şi "bine-cunoscut faptul că o gestionare corectă interogare este o condiţie prealabilă pentru punerea în aplicare stabil şi eficient.
În acest articol vom prezenta o sintaxă puţin cunoscut, dar extrem de puternic, eu vorbesc despre clauza ON DUPLICAT UPDATE CHEIE.
Această clauză este utilizat în timpul o declaraţie INSERT şi scopul său este de a verifica, inainte de inserare, există o duplicare de o cheie primară (cheie primară) sau o cheie unica (UNIQUE KEY), şi dacă acest lucru se întâmplă motor un'UPDATE MySQL va insera în schimb.
Avantajul acestei clauze este clar: va scrie o singură interogare în loc de două, cu avantaje în termeni de performanţă şi codul de curatare.
Să luăm un exemplu. Să presupunem că vrem să facem un script simplu care efectuează înregistrarea de vizitatori pe site-ul nostru. De mai jos structura tabelului de PB noastre:
Datorită INSERT sintaxa ... ON UPDATE CHEIE DUPLICAT ... putem obţine acelaşi rezultat cu o singură interogare:
INSERT INTO VALORI ip_visitatori ('123 .123.123.123 ', 1, NOW ())
LA CHEIE DPLICATE
UPDATE numero_visite numero_visite = + 1, ultima_visita = NOW ();
Astfel, în cazul în care IP este includerea în care se face, în caz contrar aveţi o actualizare simplă a înregistrării afectate.
Folosind această sintaxă permite pentru a obţine un beneficiu în termeni de performanţă egală cu 30%.
Cu imaginatie un pic "şi ingeniozitate a clauzei în cauză nu poate fi foarte util în diferite circumstanţe.
De exemplu, putem folosi in combinatie cu o condiţie.
Iată un exemplu: Să presupunem că aveţi un tabel de un site de licitaţii on-line ipotetic structurată după cum urmează:
Oferte INSERT INTO VALORI (1, 120) LA CHEIE DPLICATE UPDATE migliore_offerta = IF (VALORI (migliore_offerta) <120, 120, VALORI (migliore_offerta))Printr-o interogare simplă am rezolvat într-o singură lovitură ... În caz contrar, am fi avut de a utiliza mai multe interogări cu o risipă de resurse în consecinţă (şi un risc mai mare de erori).
| |
MS Access (Avansat)
Aflaţi cum să creaţi şi să gestionaţi baze de date rapid şi uşor. Incepand de la 29 €. |
| |
MySQL (Curs)
De gestionare a bazei de date open-source. De la 39 €. |
| |
SQL si baze de date (Curs)
Crearea şi gestionarea bazelor de date relaţionale. De la 39 €. |