【发布时间】:2018-08-15 04:42:36
【问题描述】:
在 Django 中,如果你不指定primary key,它将添加一个integer autofield。我的问题是,如果这个增量 id 达到整数限制,之后会发生什么?
【问题讨论】:
标签: python django python-3.x postgresql django-models
在 Django 中,如果你不指定primary key,它将添加一个integer autofield。我的问题是,如果这个增量 id 达到整数限制,之后会发生什么?
【问题讨论】:
标签: python django python-3.x postgresql django-models
数据库将引发错误,插入您插入的任何内容都会失败。
如果您使用的是 MySQL,错误可能是这样的:ERROR 1467 (HY000): Failed to read auto-increment value from storage engine。
django 的自动增量 id 的限制是 2,147,483,647。因此,除非您存储大量数据,否则您不太可能达到此限制。如果您使用大量数据,则可以使用bigint 类型的字段代替。
【讨论】:
在 postgresql 中,ID 字段的最大数量是 9223372036854775807
如果您的数据库有这些数量的记录,它就不起作用。假设一个简单的排序查询需要一年多的时间来执行
或者如果每条记录占用 100 字节(索引和...数据对于每条记录来说太少了),则此记录量占用 838860700 TB 存储空间。全世界都没有存储这些数据的存储空间。
【讨论】: