gpt4 book ai didi

sql - 使用递增引用更新 postgresql 表列

转载 作者:行者123 更新时间:2023-11-29 13:15:19 25 4
gpt4 key购买 nike

我有一个 postgresql 表,它有一个引用列(不同于 id)。

我想迭代表格并为每一行添加引用代码(“ITEM001”、“ITEM002”等)。

如果我想更改具有相同引用的所有行,我会这样做:

UPDATE stock SET reference = 'ITEM001';

如何根据 id 更新所有表的列?

现状:

id    name            reference
1 item-name-1
2 item-name-2
3 item-name-3
10 item-name-10
11 item-name-11

期望的结果:

id    name            reference
1 item-name-1 IT001
2 item-name-2 IT002
3 item-name-3 IT003
10 item-name-10 IT010
11 item-name-11 IT011

最佳答案

您可以使用to_char() 来格式化数字:

UPDATE stock 
SET reference = 'IT' || to_char(id, 'FM000');

格式掩码的 FM 参数确保格式化值不包含任何空格。

但一般来说,存储可以很容易地从现有数据中导出的信息并不是一个好主意。

更好的解决方案是创建一个返回该信息的 View :

create or replace view stock_with_reference
as
select *, 'IT' || to_char(id, 'FM000') as reference
from stock;

关于sql - 使用递增引用更新 postgresql 表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49979853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com