如果Django模型增量pk完成怎么办

时间:2018-08-15 04:42:36

标签: python django python-3.x postgresql django-models

在Django中,如果您未指定primary key,它将添加一个integer autofield。我的问题是,如果此增量ID达到整数限制,那么之后会发生什么?

2 个答案:

答案 0 :(得分:0)

数据库将引发错误,并且插入的内容将失败。

如果使用的是MySQL,则错误可能是这样的:ERROR 1467 (HY000): Failed to read auto-increment value from storage engine

django的自动增量ID的限制为2,147,483,647。因此,除非您要存储大量数据,否则几乎不可能达到此限制。如果您使用大量数据,则可以将bigint类型用于该字段。

答案 1 :(得分:-1)

在PostgreSQL中,最大ID字段为9223372036854775807

如果您的数据库具有这些记录量,则它将不起作用。假设一个简单的查询需要执行一年以上的订单

或如果每个记录占用100字节(索引和...数据对于每个记录来说太少),则该记录量将占用838860700 TB的存储空间。没有存储可以在全世界范围内存储这些数据量。