Giải pháp tốt hơn sẽ là đặt một khóa duy nhất trên nguồn cấp dữ liệu (ngoài khóa tăng tự động). Sau đó, sử dụng INSERT ON DUPLICATE KEY UPDATE
INSERT INTO feeds (name, url, etc, etc2, `update_count`)
VALUES ('name', 'url', 'etc', 'etc2', 1)
ON DUPLICATE KEY UPDATE
`etc` = VALUES(`etc`),
`etc2` = VALUES(`etc2`),
`update_count` = `update_count` + 1;
Lợi ích là bạn không tăng id và bạn vẫn thực hiện nó trong một truy vấn nguyên tử. Thêm vào đó, bạn chỉ cập nhật / thay đổi những gì bạn cần thay đổi. (Lưu ý rằng tôi đã bao gồm update_count
để hiển thị cách cập nhật trường) ...