REPLACE
nội bộ thực hiện xóa và sau đó chèn. Điều này có thể gây ra sự cố nếu bạn có một ràng buộc khóa ngoại trỏ vào hàng đó. Trong tình huống này, REPLACE
có thể không thành công hoặc tệ hơn:nếu khóa ngoại của bạn được đặt thành xóa theo tầng, thì REPLACE
sẽ khiến các hàng từ các bảng khác bị xóa. Điều này có thể xảy ra mặc dù ràng buộc đã được thỏa mãn cả trước và sau REPLACE
hoạt động.
Sử dụng INSERT ... ON DUPLICATE KEY UPDATE
tránh được vấn đề này và do đó được ưu tiên hơn.