..


Rėmėjų nuorodos

Mažiau klausimų su įdėklu ... APIE DUBLIKATAS KEY UPDATE

Straipsnį parašė Max Bossi

Ir "gerai žinoma, kad teisinga užklausą valdymas yra stabilaus ir veiksmingo įgyvendinimo sąlyga.
Šiame straipsnyje mes bus pristatyti mažai žinomą, tačiau labai galingas sintaksę, aš kalbu apie ON DUBLIKATAS KEY UPDATE sąlyga.

Ši sąlyga yra naudojama per ĮRAŠYTI pareiškimas ir jos tikslas yra patikrinti, prieš įterpimą, kad yra pirminis raktas (pirminis raktas) arba unikalus raktas (unikalus raktas) dubliavimosi, ir, jei tai atsitinka variklio un'UPDATE MySQL vietoj įterpti.

Šio straipsnio privalumas yra aiški: jūs rašote vieną užklausą vietoj dviejų su pranašumų veiklos ir kodas valymas.

Paimkime pavyzdžiu. Tarkime, mes norime, kad paprastas scenarijų, kuris atlieka lankytojų į mūsų svetainę prisijungti. Žemiau pateiktoje lentelėje struktūra mūsų DB:

  • IP (raktas)
  • numero_visite
  • ultima_visita
Norėdamas registruoja kiekvieną tranzitu per TL mūsų puslapiuose mes turime, atsižvelgiant į įprastą logiką, padaryti Pasirinkite pirmąjį preliminarų patikrinkite, TL dar nėra BP ir tik jei atsakymas yra neigiamas (IP nėra) iki užklausą INSERT.

Dėl sintaksė INSERT ... APIE DUBLIKATAS KEY UPDATE ... mes galime pasiekti tą patį rezultatą su vienu užklausą:

 



 INSERT INTO ip_visitatori VALUES ('123 .123.123.123 ', 1, NOW ())

 





 DĖL PAGRINDINĖS DPLICATE







 UPDATE numero_visite numero_visite = + 1 ultima_visita = NOW ();

 
Taigi, jei per TL yra įtraukti pagamintas, kitaip jums paleisti paprastą atnaujinti pažeistą įrašą. Naudojant šį sintaksė leidžia gauti pagal eksploatacinius parametrus, lygus 30% naudos.

Su šiek tiek vaizduotės ir išradingumo atitinkamos išlygos ten gali būti labai naudinga įvairių aplinkybių.
Pavyzdžiui, mes galime naudoti jį kartu su būklę. Štai pavyzdys: Tarkime, jūs turite iš hipotetinio internetinės aukciono svetainės struktūra yra tokia lentelę:

  • ID_asta
  • migliore_offerta
Tarkime, jūs norite pradėti naujo pasiūlyti vietą, jei aukcionas jau pasiūlė bus paprasta atnaujinti, tačiau tik tada, jei pasiūlymas yra didesnis nei jau yra:
 



 Pasiūlymai INSERT INTO VALUES (1, 120)

 





 DĖL PAGRINDINĖS DPLICATE







 UPDATE migliore_offerta = IF (VALUES (migliore_offerta) <120, 120, VALUES (migliore_offerta))

 
Per paprasta užklausa mes išspręsti vienu ypu ... Priešingu atveju mes turėjo naudoti keletą klausimų dėl to atliekų išteklius (ir daugiau klaidų rizika).

Tos pačios kategorijos ...
E-mokymasis
MS Access (Advanced) MS Access (Advanced)
Sužinokite, kaip kurti ir valdyti duomenų bazes greitai ir lengvai. Nuo 29 €.
MySQL (kurso) MySQL (kurso)
Valdymas atviro kodo duomenų bazės. Nuo 39 €.
SQL ir duomenų bazės (kurso) SQL ir duomenų bazės (kurso)
Kurkite ir tvarkykite reliacinėse duomenų bazėse. Nuo 39 €.
Rėmėjų nuorodos