将表的行和单独的值插入postgresql中的另一个表

时间:2012-06-13 07:31:20

标签: sql postgresql jdbc insert

我有两张桌子 - table1和table2

table1有14 columns,table2有15 columns。两个表中的first 14 columns相同且顺序相同。我想将table1的某些行复制到table2中,并将时间戳插入第15列。如何为此编写查询?

2 个答案:

答案 0 :(得分:2)

INSERT INTO t2(c1,c2,c3)
SELECT c1,c2, NOW() FROM t1;

您可以使用*,但这是未来问题的一个方法:当您更改其中一个表中的列定义时,查询将失败。

答案 1 :(得分:1)

insert into table2
select *, current_timestamp
from table1
where table1.some_column = 'whatever' -- etc

虽然很方便,但这很脆弱。为所有列命名更清晰,更好:

insert into table2 (col1, col2, col3, ..., col15, col16)
select col1, col2, col3, ...,  col15, current_timestamp
from table1
where table1.coln = 'whatever' -- etc