使用 Redshift 将数据从一个表移动到另一个表

问题描述 投票:0回答:2

我想将具有特定 user_id 的日志数据移动到 Redshift 上的新表中。我已经开始玩

WITH
like

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

Redshift 似乎不包括

DELETE
块中的
WITH
。那么最好的策略是什么? 1
INSERT INTO
,然后是
INNER JOIN
LEFT OUTER JOIN
DELETE

sql amazon-redshift postgresql-8.2
2个回答
1
投票

要在表之间“移动”数据,您必须:

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

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

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

0
投票

如果你想移动整个表,请使用 alter table append

© www.soinside.com 2019 - 2024. All rights reserved.