2016-11-28 87 views
0

我想将具有特定user_id的日志数据移动到Redshift上的新表。我已经开始与WITHlike玩:使用Redshift将数据从一个表移动到另一个表

WITH moved_rows AS (
    DELETE FROM sensor_log_enable 
    USING sensor_log_disable 
    WHERE sensor_log_enable.user_id 
     IN (16,17,18) 
    RETURNING sensor_log_enable.* 
) 
INSERT INTO sensor_log_disable 
SELECT * FROM moved_rows; 

但红移不喜欢它。

ERROR: syntax error at or near "DELETE" 
LINE 2:  DELETE FROM active_connections 

红移似乎并不包括在DELETEWITH。那么最好的策略是什么? 然后INNER JOINLEFT OUTER JOINDELETE

回答

1

表之间,你必须“搬家”的数据:

  • 使用INSERT INTO复制数据到目标表
  • 使用DELETE删除从源表中的数据

它们必须以单独的SQL命令执行。但是,您可以将这些命令封装在BEGIN/END语句中,以将它们作为一个事务处理:

BEGIN; 
INSERT INTO...; 
DELETE FROM...; 
END; 
+0

谢谢John为您解答。 – Mio

相关问题