加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 16:34:37 所属栏目:百科 来源:网络整理
导读:我正在使用“PostgreSQL 9.3.5” 我有一个表(StackOverflowTable)与列(SoId,SoName,SoDob). 我想要一个用于列SoId的序列生成器,它是一个字母数字值. 我想在postgresql中自动增加一个字母数字值. For eg : SO10001,SO10002,SO10003.....SO99999. 编辑: 如果
我正在使用“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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读