logo

MySQL REPLACE

A REPLACE utasítás a MySQL-ben az SQL szabvány kiterjesztése. Ez az utasítás ugyanúgy működik, mint az INSERT utasítás, azzal a különbséggel, hogy ha egy régi sor egyezik a tábla új rekordjával egy ELSŐDLEGES KULCS vagy egy EGYEDI index esetében, akkor ez a parancs törölte a régi sort az új sor hozzáadása előtt.

Ez az utasítás akkor szükséges, ha frissíteni akarjuk a meglévő rekordokat a táblába, hogy azok naprakészek maradjanak. Ha erre a célra a szabványos beszúrási lekérdezést használjuk, akkor az ELSŐDLEGES KULCS duplikált bejegyzést vagy EGYEDI kulcs hibát ad. Ebben az esetben a REPLACE utasítást fogjuk használni feladatunk végrehajtásához. A REPLACE parancshoz a kettő közül az egyik szükséges lehetséges akciók történnek:

tigris az oroszlánhoz képest
  • Ha nem található egyező érték a meglévő adatsorral, akkor egy szabványos INSERT utasítás kerül végrehajtásra.
  • Ha a rekord ismétlődik, a csere parancs törli a meglévő sort, majd hozzáadja az új rekordot a táblázathoz.

A REPLACE utasításban a frissítés két lépésben történt. Először törli a meglévő rekordot, majd hozzáadja az újonnan frissített rekordot, hasonlóan egy szabványos INSERT parancshoz. Így elmondhatjuk, hogy a REPLACE utasítás két szabványos funkciót hajt végre, TÖRÖL és BESZÁLLÍTÁS .

Szintaxis

A következő a szintaxis CSERE nyilatkozat be MySQL :

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

MySQL REPLACE Példa

Ismerjük meg a REPLACE utasítás működését a MySQL-ben egy példa segítségével. Először létrehozunk egy nevű táblát 'Személy' a következő állítás segítségével:

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

Ezután ki kell töltenünk a rekordot a táblázatba a BESZÁLLÍTÁS nyilatkozat az alábbiak szerint:

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

Hajtsa végre a KIVÁLASZTÁS nyilatkozat az alábbi kimenetben megjeleníthető rekordok ellenőrzésére:

MySQL REPLACE

Az adatok táblába való igazolása után a REPLACE utasítás segítségével bármelyik régi sort lecserélhetjük az újra. Hajtsa végre az alábbi utasítást, amely frissíti a 4-es azonosítójú személy városa .

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

A fenti utasítás sikeres végrehajtása után szükséges a Személy tábla adatainak ismételt lekérdezése a helyettesítés ellenőrzéséhez.

MySQL REPLACE

Az érték a név és email oszlopok vannak NULLA Most. Ez azért van, mert a REPLACE utasítás a következőképpen működik:

  • Ez az utasítás először egy új sort próbál beszúrni a Személy táblába. Az új sor beszúrása azonban sikertelen, mert az id = 4 már létezik a táblázatban.
  • Tehát ez az utasítás először törölje azt a sort, amelynek azonosítója = 4, majd szúrjon be egy új sort, amelynek azonosítója és városa ugyanaz, mint Amszterdam. Mivel nem adtuk meg a név és e-mail oszlop értékét, NULL-ra állítottuk.

MySQL REPLACE utasítás egy sor frissítéséhez

A következő REPLACE utasítást használhatjuk egy sor adatainak táblázatba való frissítéséhez:

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

A fenti szintaxis hasonló a UPDATE nyilatkozat kivéve a REPLACE kulcsszót. Megjegyzendő, hogy ezzel az utasítással nem használhatjuk a WHERE záradékot.

Hajtsa végre az alábbi példát, amely a REPLACE utasítást használja a megnevezett személy városának frissítéséhez Mikrofon tól től Kalifornia nak nek Birmingham .

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

A táblázat ellenőrzése után a következő kimenetet láthatjuk:

MySQL REPLACE

Ha nem adtuk meg az oszlop értékét a SET záradék , ez a parancs úgy működik, mint a UPDATE nyilatkozat , ami azt jelenti, hogy a REPLACE utasítás az adott oszlop alapértelmezett értékét fogja használni.

mutatók a c

A MySQL REPLACE adatok beszúrásához a SELECT utasításból.

A következő REPLACE INTO utasítással adatokat szúrhatunk be egy táblába a lekérdezésből visszaadott adatokkal.

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

Megjegyzendő, hogy a fenti REPLACE lekérdezés hasonló a INSERT INTO SELECT nyilatkozat. Hajtsa végre az alábbi példát, amely a REPLACE INTO utasítást használja egy sor másolásához ugyanazon a táblán belül.

 REPLACE INTO Person(Name, City) SELECT Name, City FROM Person WHERE id = 2; 

A táblázat ellenőrzése után a következő kimenetet kapjuk. Ebben a kimenetben láthatjuk, hogy egy sor másolata ugyanabban a táblában sikeresen hozzáadásra került.

MySQL REPLACE