..


Спонсоред Линкс

Мање упита са ИНСЕРТ ... О дуплирани кључ УПДАТЕ

Чланак који је написао Макс Боси

И "добро познато да исправно упит менаџмент је предуслов за стабилно и ефикасно спровођење.
У овом чланку ћемо представити мало познате, али веома моћан синтакса, ја говорим о О дуплирани кључ УПДАТЕ клаузулом.

Ова клаузула се користи током ИНСЕРТ исказа и њена сврха је да се провери, пре убацивања, постоји дуплирање примарни кључ (примарни кључ) или јединственог кључа (јединственог кључа), а ако се то деси мотор ун'УПДАТЕ МиСКЛ ће уместо тога уметнути.

Предност ове клаузуле је јасна: пишете један упит, уместо два са предности у смислу перформанси и код чишћења.

Узмимо пример. Претпоставимо да желимо да једноставно скрипт који врши евидентирање посетилаца нашег сајта. Испод стола структуру нашег ДБ-а:

  • ИП адреса (тастер)
  • нумеро_висите
  • ултима_висита
Желећи да забележе сваки ИП у транзиту на нашим страницама смо, у складу са уобичајеном логиком, не одаберите прво прелиминарно проверити да ИП није већ у ДБ и само ако је одговор негативан (ИП адреса није присутан) на упит ИНСЕРТ.

Захваљујући синтаксе ИНСЕРТ ... О дуплирани кључ УПДАТЕ ... можемо да постигнемо исти резултат са једним упитом:

 



 ИНСЕРТ ИНТО ип_виситатори ВАЛУЕС ('123 .123.123.123 ', 1, НОВ ())

 





 КЉУЧНА ДПЛИЦАТЕ







 УПДАТЕ нумеро_висите нумеро_висите = + 1 ултима_висита = НОВ ();

 
Тако, ако је ИП укључивање је направљен, иначе радите једноставно ажурирање утиче записа. Користећи ову синтаксу омогућава да добијете корист у смислу перформанси једнака 30%.

Уз мало "маште и генијалност клаузуле у питању не може бити веома корисна у различитим околностима.
На пример, можемо га користити у комбинацији са условом. Ево примера: Претпоставимо да имате табелу хипотетички онлајн аукције сајт структуриран на следећи начин:

  • ИД_аста
  • миглиоре_офферта
Претпоставимо да желите да наставите са постављање нову понуду, уколико аукцији је већ понудила да ће бити једноставна надоградња, али само ако је понуда већа од оне већ постоје:
 



 Понуде ИНСЕРТ ИНТО ВАЛУЕС (1, 120)

 





 КЉУЧНА ДПЛИЦАТЕ







 УПДАТЕ миглиоре_офферта = ИФ (вредности (миглиоре_офферта) <120, 120, вредности (миглиоре_офферта))

 
Кроз једноставан упит смо решен у једном налету ... У супротном бисмо морали да користе неколико упита са последицу расипање ресурса (и већи ризик од грешака).

У истој категорији ...
Е-учење
МС Аццесс (Адванцед) МС Аццесс (Адванцед)
Сазнајте како да направите и управљање базама података брзо и лако. Полазећи од 29 €.
МиСКЛ (курс) МиСКЛ (курс)
Управљање опен соурце базу података. Од 39 €.
СКЛ и базе података (курс) СКЛ и базе података (курс)
Креирање и управљање релационим базама података. Од 39 €.
Спонсоред Линкс