Według dokumentacji , różnica jest taka:
Więc co robi:
- Spróbuj dopasować wiersz za pomocą jednego z dostępnych indeksów;
- Jeśli wiersz jeszcze nie istnieje:dodaj nowy;
- Jeśli wiersz już istnieje:usuń istniejący wiersz i dodaj nowy później.
Kiedy użycie tego może się przydać w porównaniu z osobnym insert
i update
oświadczenia?
- Możesz to bezpiecznie wywołać i nie musisz się martwić o istniejące wiersze (jedna instrukcja kontra dwie);
- Jeśli chcesz, aby powiązane dane zostały usunięte podczas
inserting
/update
, możesz użyćreplace
:usuwa również wszystkie powiązane dane); - Kiedy wyzwalacze muszą zostać uruchomione, a oczekujesz
insert
(zły powód, dobrze).