postgresql使用临时表merge

时间:2016-02-29 04:02:09

标签: sql postgresql

我有三个表:A BCB是根据TEMP TABLE的输出创建的CSV。我的目标是将必要的值从B复制到A ,但必须从C创建或选择其中一个属性。

到目前为止我已经

WITH table_c_data as (
  INSERT INTO table_c (id)
  SELECT table_c_id
  FROM table_b b
  WHERE 
     NOT EXISTS (SELECT * FROM table_c c WHERE b.table_c_id = c.id)
  RETURNING *
)

INSERT INTO table_a
(w,x,y,z)
SELECT table_c.id, x, y, z
FROM table_b
INNER JOIN table_c_data as table_c
ON table_b.table_c_id = table_c.id;

但是如果记录 存在,我无法弄清楚如何让原始table_c_data返回任何内容。 (在我添加WHERE子句之前,指定现有查询按预期运行,但我正在尝试处理uniquness约束,因此我必须先检查记录是否存在)

0 个答案:

没有答案