如何创建PostgreSQL前导零序列(zerofill)

时间:2011-07-28 17:00:11

标签: postgresql zerofill

如何在PostgreSQL中创建一个前导零序列?

对于MySQL我知道它是BIGINT(10) UNSIGNED ZEROFILL AUTO_INCREMENT但是在PostgreSQL中我找不到等价物(只有bigserial)。

此外,我如何限制零的数量,因为BIGINT(10)表示10个符号,类型bigserial是否有这样的限制?

2 个答案:

答案 0 :(得分:8)

“填充前导零”任务中to_char()的一个很好的替代方法是lpad()

create table TableName(columnName serial primary key);

select lpad(columnName::text, 3, '0'), * from TableName;

警告:lpad()在溢出时不会产生错误,例如:

select lpad(4444::text, 3, '0'), to_char(4444, '000')

答案 1 :(得分:7)

创建一个常规序列,然后使用to_char()用前导零填充它。您的数据类型将为char(),但Postgres不支持整数类型的zerofill。