微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在postgresql中自动增加Alpha-Numeric值?

我正在使用“Postgresql 9.3.5”

我有一个表(StackOverflowTable)与列(SoId,SoName,Sodob).

我想要一个用于列SoId的序列生成器,它是一个字母数字值.

我想在postgresql自动增加一个字母数字值.

For eg : SO10001,SO10002,SO10003.....so99999.

编辑:

如果明天我需要生成一个序列,可以作为SO1000E100,SO1000E101,……并且具有良好的性能.那么什么是最好的解决方案!

使用id的序列和认值:
postgres=# CREATE SEQUENCE xxx;
CREATE SEQUENCE
postgres=# SELECT setval('xxx',10000);
 setval 
--------
  10000
(1 row)

postgres=# CREATE TABLE foo(id text PRIMARY KEY 
                                    CHECK (id ~ '^SO[0-9]+$' ) 
                                    DEFAULT 'SO'  || nextval('xxx'),b integer);
CREATE TABLE
postgres=# insert into foo(b) values(10);
INSERT 0 1
postgres=# insert into foo(b) values(20); 
INSERT 0 1
postgres=# SELECT * FROM foo;
   id    | b  
---------+----
 SO10001 | 10
 SO10002 | 20
(2 rows)

原文地址:https://www.jb51.cc/postgresql/192831.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐