psql如何通过将函数应用于现有列来创建列

时间:2016-06-15 18:11:51

标签: multiple-columns psql

我有一个现有的几何列,我想创建一个新列,并将一个函数应用于该现有列。语法如何工作?我收到一个错误,说它(现有列)无法从查询的这一部分引用。感谢

INSERT INTO folder(col1) VALUES (function(col1));

1 个答案:

答案 0 :(得分:0)

创建新列使用ADD COLUMN,如下所示:

t=# alter table s95 add column new_col text;
ALTER TABLE

通过将函数应用于现有列来设置值,请使用update:

t=# update s95 set new_col = concat('0'::text,i::text);
UPDATE 2
t=# select * from s95;
 i |  t   | new_col
---+------+---------
 3 | yoga | 03
 4 | yoga | 04

如果您的想法是在其他列it won't work上添加默认值的列:

  

DEFAULT子句为其列分配默认数据值   列定义它出现在。该值是任何无变量的   表达式(子查询和对其他列的交叉引用)   不允许使用当前表。)