我已经很多年没用过 SQL 了,我显然已经生疏了。我有一种情况,我试图将多行插入表 A。要插入两列数据,第一列是“静态”值(它是派生的,但对于所有新行都是相同的)和第二个是表 B 上的 SELECT DISTINCT 的结果。对于此处应发挥作用的任何一个表都没有相关约束。
FWIW,这是 Retool 中针对 postgres 数据库的 sql 脚本。
为格式道歉。表格降价似乎对我不起作用
表 A最后应如下所示:
编号 | 源文件
富 | 苹果.csv
富 | 香蕉.csv
富 | 橙色.csv
基于表 B中的这些值
源文件
苹果.csv
苹果.csv
苹果.csv
香蕉.csv
香蕉.csv
橙色.csv
橙色.csv
我已经尝试了一些变化:
INSERT INTO table_A (id, source_file)
{{id}}, SELECT DISTINCT source_file
FROM table_B WHERE source_file IS NOT NULL AND source_file <> ''
哪个抛出syntax error at or near "$1"
和
INSERT INTO table_A (id, source_file)
SELECT DISTINCT {{id}}, source_file
FROM table_B WHERE source_file IS NOT NULL AND source_file <> ''
哪个抛出
insert or update on table "dg_client_data_sources" violates
foreign key constraint "fk_data_grid"
第二个错误让我想知道是否需要循环(喘气!)SELECT DISTINCT 的结果来插入多行?我可能想得太多了......
如果需要,我可以提供其他上下文/示例。非常感谢任何方向!