如何在postgresql中从另一个表的列中添加数据?
我是postgresql的新手,需要做以下工作: 我有表1:id1整数,第1列时间戳,第2列时间戳,第3列时间戳 我有表2:id2 integer,column1 varchar,column2 numeric,column3 timestamp 我想将table2.column3中的数据附加到table1.column1中,而table1.id1(主键)应该自动递增。 table1.column2中的相应字段应获取实际时间的时间戳。 表1.3应保持为空。如何在postgresql中从另一个表的列中添加数据?,postgresql,Postgresql,我是postgresql的新手,需要做以下工作: 我有表1:id1整数,第1列时间戳,第2列时间戳,第3列时间戳 我有表2:id2 integer,column1 varchar,column2 numeric,column3 timestamp 我想将table2.column3中的数据附加到table1.column1中,而table1.id1(主键)应该自动递增。 table1.column2中的相应字段应获取实际时间的时间戳。 表1.3应保持为空。 没有链接表的公共字段。 此外,tabl
没有链接表的公共字段。 此外,table2.column3包含多个具有相同值的条目。但是,表1.1中不应存在重复值 我在网上做了很多研究,但没有发现类似的东西 我试过:
Insert into table1 (id1,column1,column2)
values ((id1).nextval),(select column3 from table2),now());
但是,它在select命令中给了我一个语法错误,我确信还有其他问题
有人能帮忙吗?我没有任何线索
Janet您可以将insert与select查询相结合(这将为select查询的每个结果插入一条记录)。在您的示例中,它将是:
INSERT INTO table1 (column1,column2)
SELECT column3, NOW() from table2
注意:我省略了id列,因为它有一个默认值auto increment,默认情况下将被填充 您混乱的表名和列名让人很难理解。请发布两个表的一些样本数据和预期结果(见表2)。听起来好像你实际上是在寻找一个
更新
而不是插入
语句。你的语句没有链接表的公共字段
使得你的解决方案几乎不可能,除非你想用表2
的所有注册表填充表1
,而不需要任何角色!非常感谢您的快速回复。我会想办法绕过这个问题。这也是我首先想到的,但是“table1.column2中的相应字段应该获得实际时间的时间戳”这句话似乎表明确实需要某种更新。