sql - Ruby on Rails SQL语句错误

标签 sql ruby-on-rails activerecord sqlite ruby-on-rails-3

嗨,大家好,我有一个模型直播,在数据库中有两列,“ user_id”和“ activity_id”。非常直截了当。

现在,当我尝试将多个记录插入数据库时​​,我得到了无效的SQL语句:

SQLite3::SQLException: near ",": syntax error: INSERT INTO livestreams (user_id, activity_id) 
          VALUES (1, 2), (101, 2)


用于执行此操作的代码来自insoshi,如下所示:

def do_livestream_insert(users_ids, activity_id)
      sql = %(INSERT INTO livestreams (user_id, activity_id) 
              VALUES #{values(users_ids, activity_id)})
      ActiveRecord::Base.connection.execute(sql)
end

def values(ids, common_value)
      common_values = [common_value] * ids.length
      convert_to_sql(ids.zip(common_values))
end

def convert_to_sql(array_of_values)
      array_of_values.inspect[1...-1].gsub('[', '(').gsub(']', ')')
end


导轨为什么要这样做? SQLlite是否不支持一次插入多个记录?

我已重置数据库,然后重新填充它。

感谢您的帮助,不胜感激。

祝你今天愉快,
斯特凡诺

最佳答案

SQLite did not support插入多个记录,直到版本3.7.11

关于sql - Ruby on Rails SQL语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3690526/

相关文章:

sql - PostgreSQL 自连接查询没有剩余空间错误

php - 更新查询语法

sql - 从 Postgres 中的复合类型数组中进行选择

ruby-on-rails - heroku上传错误无法检测rake任务

ruby-on-rails - 双向自引用关联

mysql - ".save"仅在数据库中插入空值

mysql - 数据库 :seed not loading models

mysql - 如何使用 IF() 条件在 MySQL 中显示 true 和 false 行

ruby-on-rails - Rails 模型范围内的关联数据

mysql - 将包括如何获取点击最多的记录和至少一个子级资源