1
使用setval('sequence',1)
設置順序爲1起始值但是,當插入一條記錄,第一個「序列」號實際上是2在Postgresql中,序列號設置爲從1開始,但實際上是返回id爲2的新記錄?
如何獲得實際的第一個記錄有1序列號?
使用setval('sequence',1)
設置順序爲1起始值但是,當插入一條記錄,第一個「序列」號實際上是2在Postgresql中,序列號設置爲從1開始,但實際上是返回id爲2的新記錄?
如何獲得實際的第一個記錄有1序列號?
setval
重置序列對象的計數器值。雙參數表單將序列的last_value
字段設置爲指定的值,並將其is_called
字段設置爲true,這意味着下一個nextval
將在返回值之前推進序列。 [...]SELECT setval('foo', 42); Next nextval will return 43 SELECT setval('foo', 42, true); Same as above SELECT setval('foo', 42, false); Next nextval will return 42
所以調用setval('sequence', 1)
序列的當前值設置爲1
和下一個值將是2
。你可能想的setval
三個參數的形式:
setval('sequence', 1, false)
,這樣的序列is_called
標誌是假的,nextval('sequence')
將1
。還要注意,綁定到序列的列的默認值是nextval('sequence')
。