0

我想在 PostgreSQL 中创建一个函数,该函数将执行以下操作:

首先从表中读取一些数据让我们说“从表 1 中选择 col1,col2”然后对于上面选择的每一行我想插入到另一个表让我们说 table2(包含一些额外的列,如日期等上)。

对于每次插入,我想要一个从给定数字开始并在每个新行中增加的唯一键。有人可以给我一个关于我如何做到这一点的例子吗?

我需要更具体地说我想做下面描述的事情:

    For(every row in table1)
       if(table1.col1>0)
          insert into table2 (c1,c2,c3,c4) nalues (id,table1.col1,table1.col2,'oposite',current_timestamp)
       else if(table1.col1<0)
          insert into table2 (c1,c2,c3,c4) nalues (id,table1.col1,table1.col2,'negative',current_timestamp)

id+=1
4

2 回答 2

3
insert table2(id, col1, col2)
select startingpoint-1+row_number() over (order by col1, col2), 
       col1, 
       col2 
from table1
于 2012-08-21T14:54:35.633 回答
0

您可以使用select into来执行此操作,只需使用自动递增字段设置第二个表,它将为您提供唯一键。

于 2012-08-21T14:53:04.737 回答