更新和插入新資料 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

更新和插入新資料

您可以使用 MERGE命令,有效率地將新資料新增至現有資料表。建立臨時資料表,然後使用本節所述的其中一個方法從臨時資料表中更新目標資料表,即可執行合併操作。如需 MERGE命令的詳細資訊,請參閱 MERGE

合併範例 使用 Amazon Redshift 的範例資料集,稱為TICKIT資料集。作為先決條件,您可以遵循 常見資料庫任務入門 中的指示來設定TICKIT資料表和資料。有關範例資料集的更多詳細資訊,請參閱範例資料庫

合併方法 1:取代現有資料列

如果您要覆寫目標資料表中的所有資料欄,執行合併最快的方式是取代現有的資料列。這只會掃描目標資料表一次,透過使用內部聯結來刪除將要更新的資料列。刪除資料列之後,這些資料列會透過臨時資料表中的單一插入操作被新資料列取代。

如果下列各項皆成立,請使用此方法:

  • 您的目標資料表和您的臨時資料表包含相同的資料欄。

  • 您想要將目標資料表資料欄中的所有資料取代為所有臨時資料表資料欄。

  • 您將在合併中使用臨時資料表的所有資料列。

如果任何這些條件不適用,請使用合併方法 2:不使用 指定資料欄清單MERGE,如下節所述。

如果您不會使用預備資料表中的所有資料列,請使用子WHERE句篩選 DELETE和 INSERT陳述式,以排除未變更的資料列。不過,如果預備資料表中的大部分資料列都不會參與合併,建議您INSERT以個別步驟執行 UPDATE和 ,如本節稍後所述。

合併方法 2:指定資料欄清單而不使用 MERGE

使用此方法來更新目標資料表中的特定資料欄,而不覆寫整個資料列。此方法需要比上一個方法更長的時間,因為它需要額外的更新步驟,而且不使用 MERGE命令。如果下列任一項成立,請使用此方法:

  • 並非目標資料表中的所有資料欄都是要更新的。

  • 臨時資料表中的多數資料列將不會用於更新。