..
Og 'velkjent at en riktig spørring ledelse er en forutsetning for stabil og effektiv implementering.
I denne artikkelen vil vi presentere en lite kjent men svært kraftfull syntaks, jeg snakker om på dupliserte KEY UPDATE klausulen.
Denne klausulen brukes under en INSERT-setning og dens formål er å verifisere, før innsetting, det er en duplisering av en primærnøkkel (primærnøkkel) eller en unik nøkkel (UNIQUE KEY), og hvis dette skjer motoren un'UPDATE MySQL vil i stedet sette inn.
Fordelen med denne klausulen er klart: du skriver en enkelt spørring i stedet for to med fordeler i form av ytelse og kode opprydding.
La oss ta et eksempel. Anta at vi ønsker å lage et enkelt skript som utfører logging av besøkende til nettstedet vårt. Under tabellen struktur DB vår:
Takket være syntaksen INSERT ... PÅ DUPLICATE KEY UPDATE ... vi kan oppnå samme resultat med en enkelt spørring:
Ip_visitatori INSERT INTO VALUES ('123 .123.123.123 ', 1, NOW ())
OM KEY DPLICATE
UPDATE numero_visite numero_visite = + 1, ultima_visita = NÅ ();
Dermed, hvis IP ikke er innsetting er gjort, ellers kan du kjøre en enkel oppdatering av de berørte posten.
Bruk denne syntaksen lar deg hente en fordel når det gjelder ytelse lik 30%.
Med litt fantasi og oppfinnsomhet av klausulen i spørsmål det kan være svært nyttig i ulike situasjoner.
For eksempel kan vi bruke den i kombinasjon med en tilstand.
Her er et eksempel: Anta at du har en tabell over en tenkt auksjon på strukturert som følger:
INSERT INTO bud VALUES (1, 120) OM KEY DPLICATE UPDATE migliore_offerta = HVIS (VALUES (migliore_offerta) <120, 120, VALUES (migliore_offerta))Gjennom en enkel spørring vi løst med ett slag ... Ellers ville vi ha måttet bruke flere henvendelser resulterte i sløsing med ressurser (og større risiko for feil).
| |
MS Access (Course)
Lær hvordan å opprette og administrere databaser enkelt og raskt. Starter fra 29 €. |
| |
MySQL (Course)
Forvaltning av open-source database. Starter fra 39 €. |
| |
SQL og Database (Course)
Opprette og administrere relasjonsdatabaser. Starter fra 39 €. |