【发布时间】:2014-10-02 04:33:37
【问题描述】:
我有一个 django 模型,它的 id 开始奇怪地增加。
该列的 postgres 定义(从 Django 模型生成):
id | integer | not null default nextval('billing_invoice_id_seq'::regclass)
tpg=> SELECT MAX(id) FROM billing_invoice;
max
-------
16260
然后我通过django admin新建了一条记录:
tpg=> SELECT MAX(id) FROM billing_invoice;
max
-------
17223
tpg=> SELECT nextval('billing_invoice_id_seq');
nextval
---------
17224
然后我创建了一条新记录,它跳过了 17224 值并插入了主键 17225:
tpg=> SELECT nextval('billing_invoice_id_seq');
nextval
---------
17226
有人知道为什么会这样吗?应用程序此时并不关心,因为 id 仍在递增,但在最后几个新对象中,PK 在一次插入中从 427 -> 4357 跳过,然后在 2 个对象中跳到 8378,然后在 3 个对象中跳到 97xx它跃升至 14k。
【问题讨论】:
标签: django postgresql auto-increment