gpt4 book ai didi

mysql - Datamapper 是否支持 'On Duplicate Key Update' 或其他更新插入技术?

转载 作者:行者123 更新时间:2023-11-30 23:28:09 24 4
gpt4 key购买 nike

我正在使用 Ruby 和 Datamapper 将大量记录加载到 MySQL 数据库中。这些记录主要是插入的,但也有相当数量的更新。我基本上想“更新”数据库中这些记录的所有列。我能找到的唯一选项是:

1) 查询一条记录。如果存在,请更新它。如果没有,创建一个记录。 (总是一个额外的查询)2) 尝试创建一个新记录。捕获重复键错误。查询现有记录。更新那些记录。 (有更新时,额外查询2次)

我想利用 MySQL 的 On Duplicate Key Update,因为它看起来效率更高。有没有办法在 Datamapper 中执行此操作?还有其他建议吗?

最佳答案

您应该能够为此使用first_or_create。来自docs :

zoo = Zoo.first_or_create(:name => 'The Glue Factory')

我没有通过在 do/do_mysql 中查找 On Duplicate Key Update 得到任何匹配项 |或 dm-mysql-adapter来源,所以它可能不支持它。如果效率对于需要此功能来说非常重要,您可能需要求助于纯 SQL。

关于mysql - Datamapper 是否支持 'On Duplicate Key Update' 或其他更新插入技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com