logo

MySQL REPLACE

MySQL:n REPLACE-käsky on SQL-standardin laajennus. Tämä käsky toimii samalla tavalla kuin INSERT-käsky, paitsi että jos vanha rivi vastaa taulukon uutta tietuetta PRIMARY KEY- tai UNIQUE-indeksille, tämä komento poisti vanhan rivin ennen uuden rivin lisäämistä.

Tämä lausunto on pakollinen, kun haluamme päivittää olemassa olevat tietueet taulukkoon pitääksemme ne ajan tasalla. Jos käytämme tähän tarkoitukseen tavallista lisäyskyselyä, se antaa ENSISIJAISEN AVAIN kaksoismerkinnän tai UNIQUE avainvirheen. Tässä tapauksessa käytämme REPLACE-käskyä tehtävämme suorittamiseen. REPLACE-komento vaatii jommankumman näistä kahdesta mahdollista toimia tapahtuu:

  • Jos olemassa olevaa datariviä vastaavaa arvoa ei löydy, suoritetaan standardi INSERT-käsky.
  • Jos tietueen kaksoiskappale löytyy, korvaa-komento poistaa olemassa olevan rivin ja lisää sitten uuden tietueen taulukkoon.

REPLACE-käskyssä päivitys suoritettiin kahdessa vaiheessa. Ensin se poistaa olemassa olevan tietueen, ja sitten uusi päivitetty tietue lisätään tavallisen INSERT-komennon tapaan. Siten voimme sanoa, että REPLACE-käsky suorittaa kaksi vakiotoimintoa, POISTAA ja LISÄÄ .

Syntaksi

esimerkki javassa

Seuraavassa on syntaksi KORVATA lausunto sisään MySQL :

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

MySQL REPLACE Esimerkki

Ymmärrämme REPLACE-käskyn toimintaa MySQL:ssä esimerkin avulla. Ensin aiomme luoda taulukon nimeltä 'Henkilö' käyttämällä seuraavaa lausetta:

piilotetut sovellukset
 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 ); 

Seuraavaksi meidän on täytettävä tietue taulukkoon käyttämällä LISÄÄ alla oleva lausunto:

 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'); 

Suorita VALITSE lausunto tarkistaa tietueet, jotka voidaan näyttää alla olevassa tulosteessa:

MySQL REPLACE

Kun tiedot on vahvistettu taulukkoon, voimme korvata minkä tahansa vanhan rivin uudella rivillä REPLACE-käskyn avulla. Suorita alla oleva lauseke, joka päivittää sellaisen henkilön kaupunki, jonka henkilötunnus on 4 .

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

Kun yllä oleva käsky on suoritettu onnistuneesti, taulukon Henkilö tiedot on kysyttävä uudelleen vaihdon tarkistamiseksi.

nbsp
MySQL REPLACE

Arvo kohdassa nimi ja sähköposti sarakkeet ovat TYHJÄ nyt. Tämä johtuu siitä, että REPLACE-lause toimii seuraavasti:

  • Tämä lause yrittää ensin lisätä uuden rivin Henkilö-taulukkoon. Mutta uuden rivin lisääminen epäonnistui, koska id = 4 on jo olemassa taulukossa.
  • Joten tämä lause poistaa ensin rivin, jonka id = 4, ja lisää sitten uusi rivi, jolla on sama tunnus ja kaupunki kuin Amsterdam. Koska emme ole määrittäneet nimi- ja sähköpostisarakkeen arvoa, se asetettiin arvoon NULL.

MySQL REPLACE -käsky päivittää rivi

Voimme käyttää seuraavaa REPLACE-käskyä päivittääksesi rivitiedot taulukkoon:

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

Yllä oleva syntaksi on samanlainen kuin UPDATE lausunto lukuun ottamatta KORVA-avainsanaa. On huomattava, että emme voi käyttää WHERE-lausetta tämän lausunnon kanssa.

Suorita alla oleva esimerkki, joka käyttää REPLACE-käskyä päivittääksesi nimetyn henkilön kaupungin Mike alkaen Kalifornia kohtaan Birmingham .

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

Taulukon tarkistamisen jälkeen voimme nähdä seuraavan tulosteen:

MySQL REPLACE

Jos emme ole määrittäneet sarakkeen arvoa SET-lauseke , tämä komento toimii kuten UPDATE lausunto , mikä tarkoittaa, että REPLACE-käsky käyttää kyseisen sarakkeen oletusarvoa.

MySQL REPLACE lisätäksesi tietoja SELECT-käskystä.

Voimme käyttää seuraavaa REPLACE INTO -käskyä lisätäksesi tietoja taulukkoon kyselyn palauttamilla tiedoilla.

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

On huomattava, että yllä oleva REPLACE-kysely on samanlainen kuin INSERT INTO SELECT lausunto. Suorita alla oleva esimerkki, joka käyttää REPLACE INTO -käskyä kopioidaksesi rivin samassa taulukossa.

turbo c++ lataus
 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

Taulukon tarkistamisen jälkeen saamme seuraavan tulosteen. Tässä tulosteessa voimme nähdä, että saman taulukon rivin kopio on lisätty onnistuneesti.

MySQL REPLACE