如何创建 PostgreSQL 前导零序列 (zerofill)
如何在 PostgreSQL 中创建前导零序列?
对于 MySQL,我知道它是 BIGINT(10) UNSIGNED ZEROFILL AUTO_INCRMENT
但在 PostgreSQL 中我找不到等效项(只有 bigserial
)。
此外,我如何限制零的数量,因为 BIGINT(10)
表示 10 个符号,类型 bigserial
有这样的限制吗?
How can I create a leading zero sequence in PostgreSQL?
For MySQL I know it is BIGINT(10) UNSIGNED ZEROFILL AUTO_INCREMENT
but in PostgreSQL I can't find an equivalent (only bigserial
).
Moreover how can I limit the number of zeroes as BIGINT(10)
means 10 symbols, does the type bigserial
have such a limit?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个常规序列,然后使用 to_char() 用前导零填充它。您的数据类型将是 char(),但是 Postgres 不支持整数类型的填零。
Create a regular sequence, then use to_char() to pad it with leading zeroes. Your data type will be char(), though, Postgres does not support zerofill for integral types.
在“填充前导零”任务中,
to_char()
的一个很好的替代方法是lpad()
:注意:
lpad()
不会生成溢出错误,请参见示例:A good alternative to
to_char()
in a "fill leading zeros" task islpad()
:Caution:
lpad()
does not generate an error on overflow, see for example: