如何使用PostgreSQL的顺序更新SQL唯一值?

在SQL中,如何更新表,列设置为每行不同的值?

我想更新一些行PostgreSQL数据库中,从一个序列,其中该列具有唯一约束设置一列数字。 我希望我可以只使用:

update person set unique_number = (select nextval('number_sequence') );

但似乎NEXTVAL只调用一次,所以更新使用相同数量的每一行,我也得到了“重复键违反唯一约束”的错误。 我该怎么办呢?

--------------解决方案-------------

不要使用子查询,而直接使用NEXTVAL函数,就像这样:

update person set unique_number = nextval('number_sequence');

我认为皮克的序列黑客和迹象表明增量整数是不是关键行的最好方式。 虽然pgSQL里没有得到到8.3 UUID的原生支持

http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html

UUID的好处是,组合几乎无限的,不像一个随机数将达到碰撞一天。

分类:SQL 时间:2015-03-15 人气:0
本文关键词: SQL,PostgreSQL的,序列
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.499 (s). 10 q(s)