在几十年没有使用 SQL 之后,我又回到了 SQL,所以我有一个菜鸟问题。 这是我的代码:
CREATE TEMPORARY TABLE tempo
(LIKE tb_old INCLUDING ALL);
COPY tempo (id, notes, word)
FROM 'C:\www\export_lastline.csv'
WITH (FORMAT CSV, HEADER);
INSERT INTO tb_old (word, line_break)
SELECT word, 'TRUE'
FROM tempo
WHERE tempo.id = tb_old.id;
DROP TABLE tempo;
我到底做错了什么才会抛出这个错误?
错误:对表“tb_old”SQL 的 FROM 子句条目的引用无效 状态:42P01 详细信息:表“tb_old”有一个条目,但它 无法从查询的这部分引用。字符:239
我试过了
`WHERE tempo['id'] = tb_old['id'];`
但它也不支持子脚本... 我在网上寻找解决方案,但只找到与 JOIN 命令相关的此错误的示例。我有一本关于 SQL 的参考书,也看过在线 PostgreSQL 手册,但并不真正知道我做错了什么,所以目前这是一种盲目搜索。
我正在尝试使用仅包含 ID 子集的 CSV 文件中的数据更新数据库 (db_old) 中的表,并添加一个布尔值以指示这些条目是文件中包含的条目子集的一部分
C:\www\export_lastline.csv
.
您正在寻找
UPDATE
而不是 INSERT
喜欢
UPDATE tb_old t1
SET word = t2.word ,line_break = 'TRUE'
FROM tempo t2
WHERE
t2.id = t1.id
;