Според документация , разликата е:
И така, какво прави:
- Опитайте се да съпоставите реда, като използвате един от наличните индекси;
- Ако редът вече не съществува:добавете нов;
- Ако редът вече съществува:изтрийте съществуващия ред и след това добавете нов.
Кога използването на това може да стане полезно при отделно insert
и update
изявления?
- Можете спокойно да извикате това и не е нужно да се притеснявате за съществуващи редове (един оператор срещу два);
- Ако искате свързаните данни да бъдат премахнати при
inserting
/updating
, можете да използватеreplace
:изтрива и всички свързани данни); - Когато тригерите трябва да се задействат и очаквате
inserting
(лоша причина, добре).