【发布时间】:2019-08-08 15:44:57
【问题描述】:
我有一个包含如下列的表格:
inner_id(serial pk) | id(varchar) | name(varchar) | fid(varchar)
我想发送只有 id 和 name 的行:(id, name) 我怎么能告诉 Postgresql 用基于串行 pk 的值(如字符串 + 主键)来完成“fid”列? 我想要这种输出:
inner_id(serial pk) | id(varchar) | name(varchar) | fid(varchar)
1 G786k NAME FID-1
2 l7hk NAME FID-2
作为奖励,我从 python 发送行并且必须在查询中使用 %s
UPD。 我尝试运行如下查询:
INSERT INTO table (id, name, fid)
VALUES (%s,%s,%s||TO_CHAR(inner_id));
但是我得到一个错误,我不能引用 inner_id(primary key)
【问题讨论】:
-
Postgres 12 引入了计算列。我建议只使用视图来执行此操作。
-
为什么要两次存储相同的信息?当您选择数据时,这样做会更好。或者按照 Gordon 的建议创建一个视图
-
嗯,我需要这个来解决我当前的现有问题!目前搜索有关计算列的信息
标签: sql postgresql