在postgresql中更改`*_id_seq`表的值

5
我在postgresql中有以下表格: myapp_mymodel_id_seq
    Column     |  Type   |           Value            
---------------+---------+----------------------------
 sequence_name | name    | myapp_mymodel_id_seq
 last_value    | bigint  | 3
 start_value   | bigint  | 1
 increment_by  | bigint  | 1
 max_value     | bigint  | 9223372036854775807
 min_value     | bigint  | 1
 cache_value   | bigint  | 1
 log_cnt       | bigint  | 32
 is_cycled     | boolean | f
 is_called     | boolean | t

如何将“值”和“last_value”下的“3”更改为“40”?

我尝试更新“last_value”,但它无法识别该列。

UPDATE myapp_mymodel_id_seq SET Value=40 WHERE Value=3;

ERROR:  column "value" does not exist

1
那不是一张表,而是一个序列。 - user330315
谢谢!我不知道有这种区别。我会保留这个标题,因为搜索类似答案的人可能也不知道它不是一个表格。 - Bentley4
一个序列就像Postgres中的特殊表 - Erwin Brandstetter
2个回答

8

我很惊讶这个自动地指向了 last_value 而不是其他的 'field'/'attribute'(对术语不太确定)。 - Bentley4

-2

UPDATE myapp_mymodel_id_seq SET last_value = 40 WHERE last_value = 3;


myapp_mymodel_id_seq 是一个序列(sequence),而不是一个表格。您不能以此方式更新序列。 - user330315

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接