Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt thực tế giữa `REPLACE` và` INSERT ... ON DUPLICATE KEY UPDATE` trong MySQL là gì?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql:Chọn tất cả dữ liệu giữa hai ngày

  2. MySQL FIND_IN_SET hoặc tương đương có thể được tạo ra để sử dụng các chỉ số không?

  3. số lượng cho mỗi lần tham gia - tối ưu hóa

  4. Truy vấn SQL để xóa cơ sở dữ liệu trong MySQL

  5. SQLSTATE [HY000] [2002] Cố gắng kết nối không thành công .. - Khi cố gắng kết nối từ Máy chủ cục bộ đến máy chủ từ xa