..
Och "väl känt att en korrekt fråga förvaltning är en förutsättning för stabil och effektiv implementering.
I denna artikel kommer vi att presentera en föga känd men mycket kraftfull syntax, jag talar om för dubblerat KEY UPDATE klausul.
Denna klausul används under en INSERT-sats och dess syfte är att verifiera, före insättning, finns det en dubblering av en primärnyckel (primärnyckel) eller en unik nyckel (unik nyckel), och om detta händer motorn un'UPDATE MySQL kommer istället in.
Fördelen med denna klausul är klar: du skriver en enda fråga i stället för två med fördelar vad gäller prestanda och kod sanering.
Låt oss ta ett exempel. Antag att vi vill göra ett enkelt skript som utför loggning av besökare på vår webbplats. Under tabellen strukturen i vår DB:
Tack vare den syntax INSERT ... ON DUPLICATE KEY UPDATE ... vi kan uppnå samma resultat med en enda fråga:
INSERT INTO ip_visitatori VALUES ('123 .123.123.123 ', 1, NU ())
PÅ DE VIKTIGASTE DPLICATE
UPPDATERING numero_visite numero_visite = + 1, ultima_visita = NU ();
Således, om IP är införandet görs, annars kan du köra en enkel uppdatering av de drabbade posten.
Genom att använda denna syntax gör det möjligt att få en förmån i form av prestanda på 30%.
Med lite fantasi och uppfinningsrikedom av klausulen i fråga kan det vara mycket användbart i olika omständigheter.
Till exempel kan vi använda det i kombination med ett villkor.
Här är ett exempel: Anta att du har en tabell med en hypotetisk auktionswebbplats struktureras enligt följande:
Erbjuder INSERT INTO värden (1, 120) PÅ DE VIKTIGASTE DPLICATE UPPDATERING migliore_offerta = OM (värden (migliore_offerta) <120, 120, VALUES (migliore_offerta))Genom en enkel fråga vi löste i ett svep ... Annars skulle vi varit tvungna att använda flera frågor med åtföljande slöseri med resurser (och en större risk för fel).
| |
MS Access (avancerat)
Lär dig skapa och hantera databaser snabbt och enkelt. Från 29 €. |
| |
MySQL (kurs)
Hantering av öppen källkod databas. Från 39 €. |
| |
SQL och databas (kurs)
Skapa och hantera relationsdatabaser. Från 39 €. |