logo

МиСКЛ РЕПЛАЦЕ

Наредба РЕПЛАЦЕ у МиСКЛ-у је проширење СКЛ стандарда. Ова наредба функционише исто као и наредба ИНСЕРТ, осим што ако се стари ред подудара са новим записом у табели за ПРИМАРИ КЕИ или УНИКУЕ индекс, ова команда је избрисала стари ред пре него што је нови ред додат.

Ова изјава је потребна када желимо да ажурирамо постојеће записе у табели да бисмо их ажурирали. Ако за ову сврху користимо стандардни упит за уметање, он ће дати дупликат уноса за ПРИМАРИ КЕИ или грешку УНИКУЕ кеи. У овом случају, користићемо наредбу РЕПЛАЦЕ да извршимо наш задатак. Команда РЕПЛАЦЕ захтева једно од две могуће акције се одвијају:

  • Ако није пронађена одговарајућа вредност са постојећим редом података, онда се изводи стандардни ИНСЕРТ израз.
  • Ако је пронађен дупликат записа, команда замене ће избрисати постојећи ред, а затим додати нови запис у табелу.

У наредби РЕПЛАЦЕ, ажурирање је обављено у два корака. Прво ће избрисати постојећи запис, а затим ће се додати ново ажурирани запис, слично стандардној ИНСЕРТ команди. Дакле, можемо рећи да израз РЕПЛАЦЕ обавља две стандардне функције, ИЗБРИШИ и ИНСЕРТ .

Синтакса

тостринг у јава

Следеће је синтакса ЗАМЕНИТИ изјава у МиСКЛ :

 REPLACE [INTO] table_name(column_list) VALUES(value_list); 

Пример МиСКЛ РЕПЛАЦЕ

Хајде да разумемо рад РЕПЛАЦЕ наредбе у МиСКЛ-у уз помоћ примера. Прво ћемо креирати табелу под називом 'особа' користећи следећу изјаву:

апстрактна класа
 CREATE TABLE Person ( ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(45) DEFAULT NULL, Email varchar(45) DEFAULT NULL UNIQUE, City varchar(25) DEFAULT NULL ); 

Затим морамо да попунимо запис у табелу користећи ИНСЕРТ изјава као у наставку:

 INSERT INTO Person(ID, Name, Email, City) VALUES (1,'Mike', '[email protected]', 'California'), (2, 'Alexandar', '[email protected]', 'New York'), (3, 'Adam', '[email protected]', 'Los Angeles'), (4, 'Peter', '[email protected]', 'Alaska'); 

Извршите СЕЛЕЦТ изјаву за верификацију записа који се могу приказати у доњем излазу:

МиСКЛ РЕПЛАЦЕ

Након верификације података у табелу, можемо заменити било који стари ред новим редом користећи РЕПЛАЦЕ израз. Извршите наредбу испод која ажурира град особе чији је ИД 4 .

 REPLACE INTO Person (id, city) VALUES(4,'Amsterdam'); 

Након успешног извршења горње наредбе, потребно је поново упити податке табеле Персон да би се проверила замена.

питхон нова линија
МиСКЛ РЕПЛАЦЕ

Вредност у име и емаил колоне су НУЛА Сада. То је зато што израз РЕПЛАЦЕ функционише на следећи начин:

  • Ова изјава прво покушава да убаци нови ред у табелу Персон. Али уметање новог реда није успело јер ид = 4 већ постоји у табели.
  • Дакле, ова изјава прво обришите ред чији је ид = 4, а затим убаците нови ред са истим ИД-ом и градом као Амстердам. Пошто нисмо навели вредност за колону имена и е-поште, она је постављена на НУЛЛ.

МиСКЛ РЕПЛАЦЕ израз за ажурирање реда

Можемо користити следећи РЕПЛАЦЕ израз да ажурирамо податке реда у табелу:

 REPLACE INTO table SET column1 = value1, column2 = value2; 

Горња синтакса је слична УПДАТЕ изјава осим кључне речи РЕПЛАЦЕ. Треба напоменути да не можемо користити клаузулу ВХЕРЕ са овом изјавом.

Извршите доњи пример који користи наредбу РЕПЛАЦЕ за ажурирање града именоване особе Мике из Цалифорниа до Бирмингем .

 REPLACE INTO Person SET ID = 1, Name = 'Mike', City = 'Birmingham'; 

Након верификације табеле, можемо видети следећи излаз:

МиСКЛ РЕПЛАЦЕ

Ако нисмо навели вредност колоне у СЕТ клаузула , ова команда функционише као УПДАТЕ изјава , што значи да ће израз РЕПЛАЦЕ користити подразумевану вредност те колоне.

МиСКЛ РЕПЛАЦЕ за уметање података из наредбе СЕЛЕЦТ.

Можемо користити следећу наредбу РЕПЛАЦЕ ИНТО за уметање података у табелу са подацима који се враћају из упита.

 REPLACE INTO table1(column_list) SELECT column_list FROM table2 WHERE condition; 

Треба напоменути да је горњи РЕПЛАЦЕ упит сличан упиту ИНСЕРТ ИН ТО СЕЛЕЦТ изјава. Извршите доњи пример који користи наредбу РЕПЛАЦЕ ИНТО за копирање реда унутар исте табеле.

јава упс концепти
 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

Након верификације табеле, добићемо следећи излаз. У овом излазу можемо видети да је копија реда у истој табели успешно додата.

МиСКЛ РЕПЛАЦЕ