【发布时间】:2020-08-20 09:31:38
【问题描述】:
问题:我想将dummy_data_temp 中存在(但不存在)的行插入dummy_data。 dummy_data 由 10 列组成,dummy_data_temp 仅包含这些列的子集(4 列,这 4 列在 dummy_data 中的列索引为 2、6、9、10)。为此,我使用下面的查询
运行此命令时出现以下错误:
警告:postgresqlExecStatement 中的错误:RS-DBI 驱动程序:(无法检索结果:错误:列“XXX”是双精度类型,但表达式是文本类型
LINE 1: INSERT INTO dummy_data SELECT dummy_data_temp.* FROM dummy_d... ^ HINT: You will need to rewrite or cast the expression.`
问题:有没有办法通过名称引用插入选定的列,或者dummy_data_temp 必须始终包含与dummy_data 相同的列(和列顺序)?
INSERT INTO dummy_data
SELECT dummy_data_temp.*
FROM dummy_data_temp
LEFT OUTER JOIN dummy_data ON (dummy_data.id=dummy_data_temp.id)
WHERE (dummy_data.id IS NULL)
【问题讨论】:
-
是的,您需要列出所有列。
标签: postgresql sql-insert