use*_*621 8 sql postgresql auto-increment
我手动向表中添加了一些行,并且还手动设置了ID(auto_increment).现在,当我尝试通过我的应用程序将新行添加到数据库表中时,对于数据库表我收到错误,即创建的ID值已经存在.
如何手动设置下一个ID值(例如,在表I中我必须使用ID,如何告诉PostgreSQL,下一个ID应该从数字3开始计算)?
str*_*kol 22
http://www.postgresql.org/docs/9.1/static/functions-sequence.html
select setval('sequence-name', <new-value>);
Run Code Online (Sandbox Code Playgroud)
您可以从表定义中获取序列名称:
id | integer | not null default nextval('id_seq'::regclass)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,序列名为'id_seq'
编辑(10倍到@Glenn):
SELECT setval('id_seq', max(id)) FROM table;
Run Code Online (Sandbox Code Playgroud)
小智 9
我认为有一个更简单的方法:
ALTER SEQUENCE "seq_product_id" RESTART WITH 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7956 次 |
| 最近记录: |