【问题标题】:How to create an auto-incrementing id with a fixed length (sequelize)如何创建具有固定长度的自动递增 id(续集)
【发布时间】:2020-07-24 17:59:47
【问题描述】:

所以我正在尝试对 id 使用 sequelize auto-increment。但是,我需要数字具有 8 个数字的固定长度。

例如:序列看起来像00000001, 00000002, 00000003, ...

我们如何做到这一点?

我正在使用 sequelizepostgres

【问题讨论】:

  • 使用简单的整数并在显示时格式化数字。
  • 嗯,我需要将它们保存为这样@a_horse_with_no_name

标签: node.js postgresql sequelize.js


【解决方案1】:

我也几乎遇到过这种情况。我按照下面的方法做了。

CREATE TABLE cpl(
  id serial,
  incre character varying default concat(substring('00000000',1,8 - length(currval('cpl_id_seq')::text)),currval('cpl_id_seq')),
  name text
);

INSERT INTO cpl(name) VALUES('cris'),('leo');

结果

id     |    incre           |   name    |       
-----------------------------------------
1      |   00000001         |  cris     |
2      |   00000002         |  leo      |

【讨论】:

  • 使用 Postgres 11,您可以将其设为生成的列:incre text generated always as (lpad(id::text, 8, '0')) stored,
  • 我尝试了您提供的方式,但有问题。这是链接dbfiddle.uk/…
  • 啊,对不起我的错。它们是在 12 中引入的:dbfiddle.uk/…
  • 是的,这是更方便的方式。我不知道。
  • 是否可以在续集模型中使用该自动增量?如果是这样,请问如何? @a_horse_with_no_name
猜你喜欢
  • 2011-12-27
  • 2011-02-18
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2011-12-17
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多