2014-06-16 47 views
0

我必须使用相同列的表格。在这两种情况下,第一列都称为id和SERIAL类型。 我想将第二个的内容复制到第一个表中。我想复制除id之外的所有内容。如果我这样做:postgres将表格复制到表格 - 如何处理序列?

INSERT INTO first 
SELECT * 
FROM second; 

它会抱怨,因为它会重复的ID。 如果我这样做:

INSERT INTO first 
SELECT 1col, 2col, 3col .... (every column except the id column, which I dont want to be copied) 
FROM second; 

它会抱怨,因为它试图插入“1col”到id列的值。

ERROR: column "id" is of type bigint but expression is of type date

所以底线是我想复制一切,除了SERIAL值,这需要由接收表计算。任何提示?

回答

2

你已经走了一半。

INSERT INTO first (1col, 2col, 3col ....) 
SELECT 1col, 2col, 3col .... 
FROM second 

是的,你必须重复所有的列。不,没有办法说“除id之外的所有人”。

+0

thx快速回答 –