Postgres sequence 的问题

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
yhjhoo
帖子: 81
注册时间: 2008-05-12 18:45
来自: javalinux.me

Postgres sequence 的问题

#1

帖子 yhjhoo » 2012-08-01 17:36

Postgres sequence 在自己增长过程中

假如我现在下面的数据表test
ID | Name
1 | test1
2 | test2

这个时候我的sequence的值是1,那么下一个如果我使用SQL insert into test(Name) values(test3)的话,就会出现duplicate的情况!

在mysql里面,他的自动增长策略会帮你自动解决,而在postgres里面就会抛出错误
sqlfm
帖子: 356
注册时间: 2007-02-15 6:26

Re: Postgres sequence 的问题

#2

帖子 sqlfm » 2012-09-10 14:50

pg seq 会自动增加,但是你自己往里面 insert ID 则被忽略。可以这么搞定:


SELECT setval('test_id_seq',(SELECT MAX(id) FROM test)+1);

当然你要先看下那个自动增加的ID SEQ 叫什么。

可以用 SIDU 来管理你的 PG

sidu.sf.net
psh09
帖子: 1
注册时间: 2011-03-04 22:30

Re: Postgres sequence 的问题

#3

帖子 psh09 » 2012-10-10 17:33

现在可以使用serial数据类型来声明了,使用楼主的语句是可以通过的,现在看起来,是不是现在的版本高级了所以没有那么繁琐了呢
回复