2016-06-29 26 views
0

我想完全覆蓋Redshift表。在Redshift中插入覆蓋表

例如,蜂巢,我可以做到以下幾點:

INSERT OVERWRITE INTO target 
SELECT s.* FROM staging s LEFT JOIN target t 
ON s.primaryKey = t.primaryKey AND s.distKey = t.distKey 
WHERE t.primaryKey IS NULL; 

我沒有得到這在紅移工作(而不是刪除並重新創建表)。

有人知道Redshift語法是覆蓋什麼嗎?

+0

我最後一次檢查postgreql沒有INSERT的覆蓋條款 – e4c5

回答

2

雖然沒有命令相當於INSERT OVERWRITE,您可以通過這樣做:

  • TRUNCATE <table>
  • 使用SELECT INTO

如:SELECT <column> INTO <table> FROM <etc>

TRUNCATE命令是一個非常有效的方法來刪除表中的所有內容。然而,它不能被ROLLBACK扭轉,所以確保你真的想要這樣做!

參見: