You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何基于ID为PostgreSQL表批量生成递增参考编码

基于id批量生成递增参考编码的PostgreSQL实现

针对你需要基于id字段批量生成ITEM001ITEM010这类格式参考编码的需求,我整理了一个简单高效的解决方案:

直接执行下面的UPDATE语句就能完成批量更新:

UPDATE stock
SET reference = concat('ITEM', lpad(id::text, 3, '0'));

语句细节解释

  • lpad(id::text, 3, '0'):先把数字类型的id转换成文本格式,再用lpad函数在字符串左侧填充0,确保最终是3位长度的字符串。比如id=1会变成'001',id=10变成'010',完美匹配你要的格式。
  • concat('ITEM', ...):把固定前缀ITEM和补零后的id字符串拼接起来,得到最终的参考编码。

提前预览结果(可选)

如果担心误操作,可以先运行这条SELECT语句,提前确认生成的编码是否符合预期:

SELECT id, name, concat('ITEM', lpad(id::text, 3, '0')) AS expected_reference
FROM stock;

执行完UPDATE后,你的表数据就会变成你期望的样子:

id | name | reference
1 | item-name-1 | ITEM001
2 | item-name-2 | ITEM002
...
10 | item-name-10 | ITEM010
11 | item-name-11 | ITEM011

扩展说明

如果以后你的id可能超过三位数(比如到1000),只需要调整lpad的第二个参数为对应位数即可,比如改成4的话,就会生成ITEM1000这样的编码:

UPDATE stock
SET reference = concat('ITEM', lpad(id::text, 4, '0'));

内容的提问来源于stack exchange,提问作者user3450862

火山引擎 最新活动