ruby-on-rails – 如何截断rails中的连接表?

前端之家收集整理的这篇文章主要介绍了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.

猜你在找的Ruby相关文章