首页 > 解决方案 > 将 PostgreSQL 行号添加到一列

问题描述

我有一个 PostgreSQL 数据库,其中包含以下列:名称、摘要等...

我正在尝试在“名称”列的每行末尾添加一个行号。

例如,我在“名称”列的第一行有名字 Christian,我希望它也能得到这样的行号:Christian-1

我正在使用以下命令插入表:

INSERT INTO people(name, summary)
VALUES ('Christian', 'some summary')
ON CONFLICT ON CONSTRAINT unique_names DO NOTHING;

我应该在这个插入命令中添加什么以包括每一行的编号?

提前感谢您提供的任何帮助。

标签: sqlpostgresql

解决方案


不要将此数据直接放入您的表中。这会污染数据,还有其他方法可以让您获得带有附加 ID 的姓名。

相反,制作这样的视图:

CREATE OR REPLACE VIEW v_people AS
SELECT *, name || '-' || id::text AS name_with_id
FROM people;

无论您在哪里需要name附加的id,您现在都可以查询此视图而不是表,并且可以只使用该列name_with_id


推荐阅读