Postgresql 序列增量,如2018AA000001、2018AB000001、2018AC000001

Postgresql 序列增量,如2018AA000001、2018AB000001、2018AC000001,postgresql,Postgresql,在完成第一个序列后,我需要将序列从2018AA000001增加到2018AA100000,然后它应该开始下一个序列2018AB000001到2018AB100000 在postgresql中使用触发器只能工作一个序列,但我需要实现2018AA,然后是2018AB,2018AC序列 请告诉我怎么做 谢谢, Vittal您可能可以利用它实现一个功能。也许这里的一些人可以把它编辑成一个你可以使用的序列。 这将输出您在说明中指定的结果 discard temp; 我们将使用此工具生成信件列表 crea

在完成第一个序列后,我需要将序列从2018AA000001增加到2018AA100000,然后它应该开始下一个序列2018AB000001到2018AB100000

在postgresql中使用触发器只能工作一个序列,但我需要实现2018AA,然后是2018AB,2018AC序列

请告诉我怎么做

谢谢,
Vittal

您可能可以利用它实现一个功能。也许这里的一些人可以把它编辑成一个你可以使用的序列。 这将输出您在说明中指定的结果

discard temp;
我们将使用此工具生成信件列表

create temp table generate_letters as
select chr(i) as letter from generate_series(65,90) i;
序号 -------------- 2018AA000001 2018AA000002 2018AA000003 2018AA000004 2018AA000005 2018AA000006 2018AA000007 2018AA000008 2018AA000009 跳过 2018AA099997 2018AA099998 2018AA099999 2018AA100000 2018AB000001 2018AB000002
我有一个列id为的表,需要使用上面的查询进行增量。请推荐我。 letter -------- A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (26 rows)
create temp table generate_num as
select lpad(i::text,6,'0') as num from generate_series(1,100000) i;
select * from generate_num limit 10; num -------- 000001 000002 000003 000004 000005 000006 000007 000008 000009 000010 (10 rows)
select concat_ws('','2018',gl1.letter,gl2.letter,d.num) as seq
from       generate_letters gl1
cross join generate_letters gl2
cross join generate_num d limit 100003;
seq -------------- 2018AA000001 2018AA000002 2018AA000003 2018AA000004 2018AA000005 2018AA000006 2018AA000007 2018AA000008 2018AA000009 ...skipping... 2018AA099997 2018AA099998 2018AA099999 2018AA100000 2018AB000001 2018AB000002