【发布时间】:2018-12-03 22:33:14
【问题描述】:
我正在开发一个 Rails 应用程序,它总是创建一个新记录,然后在用户决定不保存它时删除它。所以我只是想知道是否......
- 鉴于 auto_increment 行为,我的数据库将永远用完 ID。
- 删除的行的 ID 会被再次使用吗?
编辑:我的数据库是 MySQL。
【问题讨论】:
-
是的,你可能会用完(例如,hackernoon.com/…),但有办法绕过它。我不记得 PG 是否会重新使用已删除的 ID。
-
@DaveNewton 较新的 Rails 将使用
bigserial,因此用尽的可能性极小,但并非不可能。而且 PostgreSQL 序列是单调递增的,所以旧值不会被重用。 -
感谢大家的回复。我的数据库目前是 MySQL。
-
您可以直接查看数据库中的表(即使用
mysqlCLI 工具)以查看id是什么类型,然后检查MySQL 文档中的限制。当您在 MySQL 文档中时,请阅读auto_increment以了解它如何处理已删除的 ID,但我怀疑它们会被重用。 -
@muistooshort 谢谢!这是BIGINT,需要数千年才能达到极限! (据stackoverflow.com/a/9743313/267693)
标签: mysql ruby-on-rails activerecord