PostgreSql函数“将数据从表插入到其他表”

时间:2012-08-21 14:41:43

标签: sql postgresql

我想在PostgreSQL中创建一个能够实现以下功能的函数:

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

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

我需要更具体 我想做下面描述的内容:

    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

2 个答案:

答案 0 :(得分:3)

insert table2(id, col1, col2)
select startingpoint-1+row_number() over (order by col1, col2), 
       col1, 
       col2 
from table1

答案 1 :(得分:0)

您可以使用select into执行此操作,只需使用自动增量字段设置第二个表格,它就会为您提供唯一的密钥。