前端之家收集整理的这篇文章主要介绍了
ruby-on-rails – 如何截断rails中的连接表?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要截断ActiveRecord表,我可以这样做
Category.destroy_all
要么
Post.destroy_all
如何截断categories_post表?
对于真正的TRUNCATE,您可以使用execute来运行原始
sql.
ActiveRecord::Base.connection.execute("TRUNCATE TABLE #{table_name}")
您使用模型的示例未执行真正的TRUNCATE查询.
> destroy_all不会截断表.它“通过实例化每条记录并调用其destroy方法来破坏记录匹配条件”(link).
> delete_all更接近 – 它忽略了回调 – 但仍然不是TRUNCATE.
使用execute方法从数据库中删除行而不创建任何模型实例.
此外,实际的TRUNCATE查询(至少在MysqL中)将重置主键的自动增量,以便您插入的下一条记录的id为1.
原文链接:https://www.f2er.com/ruby/271055.html