我正在使用 Ruby 和 Datamapper 将大量记录加载到 MySQL 数据库中。这些记录主要是插入,但有相当数量的更新。我基本上想“更新”数据库中这些记录的所有列。我能找到的唯一选择是:
1) 查询记录。如果存在,请更新它。如果没有,请创建一个记录。(总是一个额外的查询) 2)尝试创建一个新记录。捕获重复的键错误。查询现有记录。更新这些记录。(当有更新时,2 个额外的查询)
我想使用 MySQL On Duplicate Key Update
,因为它看起来效率更高。有没有办法在 Datamapper 中做到这一点?还有其他建议吗?