嗨,大家好,我有一个模型直播,在数据库中有两列,“ 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/