logo

MySQL ZAMENJAJ

Izjava REPLACE v MySQL je razširitev standarda SQL. Ta stavek deluje enako kot stavek INSERT, le da če se stara vrstica ujema z novim zapisom v tabeli za PRIMARNI KLJUČ ali UNIQUE indeks, ta ukaz izbriše staro vrstico, preden se doda nova vrstica.

Ta izjava je potrebna, ko želimo posodobiti obstoječe zapise v tabeli, da ostanejo posodobljeni. Če za ta namen uporabimo standardno poizvedbo za vstavljanje, bo podala Duplicate vnos za PRIMARY KEY ali UNIQUE key error. V tem primeru bomo za izvedbo naše naloge uporabili stavek REPLACE. Ukaz REPLACE zahteva eno od obeh mogoče dejanja potekajo:

  • Če z obstoječo podatkovno vrstico ni najdene ujemajoče se vrednosti, se izvede standardni stavek INSERT.
  • Če je najden podvojeni zapis, bo ukaz za zamenjavo izbrisal obstoječo vrstico in nato v tabelo dodal nov zapis.

V stavku REPLACE je bila posodobitev izvedena v dveh korakih. Najprej bo izbrisal obstoječi zapis, nato pa bo dodan na novo posodobljen zapis, podobno kot standardni ukaz INSERT. Tako lahko rečemo, da stavek REPLACE izvaja dve standardni funkciji, IZBRIŠI in VSTAVI .

Sintaksa

pretvorite niz v datum

Sledi sintaksa ZAMENJATI izjava v MySQL :

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

Primer MySQL REPLACE

Razumejmo delovanje stavka REPLACE v MySQL s pomočjo primera. Najprej bomo ustvarili tabelo z imenom 'Oseba' z uporabo naslednje izjave:

shilpa shetty
 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 ); 

Nato moramo izpolniti zapis v tabelo z uporabo VSTAVI spodnja izjava:

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

Izvedite IZBERI stavek za preverjanje zapisov, ki so lahko prikazani v spodnjem izhodu:

MySQL ZAMENJAJ

Ko preverimo podatke v tabeli, lahko zamenjamo katero koli staro vrstico z novo vrstico z uporabo stavka REPLACE. Izvedite spodnji stavek, ki posodobi mesto osebe, katere ID je 4 .

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

Po uspešni izvedbi zgornjega stavka je treba znova poizvedovati po podatkih tabele Oseba, da preverimo zamenjavo.

niz nizov c programiranje
MySQL ZAMENJAJ

Vrednost v ime in E-naslov stolpci so NIČ zdaj. To je zato, ker izjava REPLACE deluje na naslednji način:

  • Ta stavek poskuša najprej vstaviti novo vrstico v tabelo Oseba. Toda vstavljanje nove vrstice ni uspelo, ker id = 4 že obstaja v tabeli.
  • Ta stavek torej najprej izbriše vrstico, katere id = 4, nato pa vstavi novo vrstico z istim id-jem in mestom kot Amsterdam. Ker nismo podali vrednosti za stolpec z imenom in e-pošto, je bila nastavljena na NULL.

Stavek MySQL REPLACE za posodobitev vrstice

Za posodobitev podatkov vrstice v tabelo lahko uporabimo naslednji stavek REPLACE:

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

Zgornja sintaksa je podobna Izjava UPDATE razen ključne besede REPLACE. Upoštevati je treba, da s tem stavkom ne moremo uporabiti stavka WHERE.

Izvedite spodnji primer, ki uporablja stavek REPLACE za posodobitev mesta imenovane osebe Mike od Kalifornija do Birmingham .

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

Po preverjanju tabele lahko vidimo naslednji rezultat:

MySQL ZAMENJAJ

Če nismo določili vrednosti stolpca v stavek SET , ta ukaz deluje kot Izjava UPDATE , kar pomeni, da bo stavek REPLACE uporabil privzeto vrednost tega stolpca.

MySQL REPLACE za vstavljanje podatkov iz stavka SELECT.

Za vstavljanje podatkov v tabelo s podatki, vrnjenimi iz poizvedbe, lahko uporabimo naslednji stavek REPLACE INTO.

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

Upoštevati je treba, da je zgornja poizvedba REPLACE podobna INSERT INTO SELECT izjava. Izvedite spodnji primer, ki uporablja stavek REPLACE INTO za kopiranje vrstice v isti tabeli.

kaj je izvoz v linuxu
 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

Po preverjanju tabele bomo dobili naslednji rezultat. V tem izhodu lahko vidimo, da je bila kopija vrstice v isti tabeli uspešno dodana.

MySQL ZAMENJAJ