如何实现 MySQL 中当记录存在时更新、不存在时插入(UPSERT)?请写出推荐写法并说明其原理与注意事项。
考察说明
考察对 MySQL 插入更新语义及并发安全的掌握
回答思路
- 能写出 INSERT ... ON DUPLICATE KEY UPDATE 或 REPLACE INTO 并说明区别
- 能说明唯一键或主键在触发更新机制中的作用
- 能指出 REPLACE 与 INSERT...UPDATE 在删除重建与自增/外键上的差异
- 能讨论并发场景下正确性与性能取舍
考察对 MySQL 插入更新语义及并发安全的掌握