我有一個模型,它有5行。而id是從1,2,3,4,5開始的。但是在rails控制檯中,我做了Model.delete_all。現在,如果我嘗試插入新記錄,則ID將從6開始,而不是1.我希望新記錄的ID從1開始,因爲我刪除了以前的記錄。如何實現這一點。如何刪除活動記錄中已刪除行的ID
感謝
我有一個模型,它有5行。而id是從1,2,3,4,5開始的。但是在rails控制檯中,我做了Model.delete_all。現在,如果我嘗試插入新記錄,則ID將從6開始,而不是1.我希望新記錄的ID從1開始,因爲我刪除了以前的記錄。如何實現這一點。如何刪除活動記錄中已刪除行的ID
感謝
如果我們要重新開始編號序列,所以我們可以利用這一點:
Postgres的:
ActiveRecord::Base.connection.reset_pk_sequence!(Model.table_name)
SQLite的
ActiveRecord::Base.connection.execute("update sqlite_sequence set seq = 1 where name = '#{Model.table_name}';")
嗨,我使用的是Postgres DB。我的模型名稱是PackageType,我的表名是package_types。當我在控制檯ActiveRecord :: Base.connection.reset_pk_sequence!(PackageType.package_types)中做了followinf。我得到沒有方法錯誤。請澄清。 – gates
嘿,你可以截斷你的表使用ActiveRecord :: Base.connection.execute(「TRUNCATE TABLE table_name」)而不是'delete_all' –
@gates這真的不需要。這些來自序列的自動增量..但看看http://apidock.com/rails/ActiveRecord/ConnectionAdapters/PostgreSQL/SchemaStatements/reset_pk_sequence%21。 –