红移:如果存在则截断 TABLE

Redshift: TRUNCATE TABLE IF EXISTS

TRUNCATE TABLE代替DELETErecommended。但是,truncate table 不支持 IF EXISTS 子句。另一种方法是 DROP TABLE 并重新创建但需要 DDL。如果只有 table 存在,有没有办法做到 TRUNCATE TABLE

您有两种选择来实现它:

SQL Procedure/Script
使用IF条件,检查table是否存在,然后只截断你的table。

带有普通 SQL 语句
Create table 与 if not exists 结合使用 Truncate,这将确保 table 始终存在并且您的连续 SQL 语句不要出错并停止。

CREATE TABLE @tobetruncated IF NOT EXISTS
TRUNCATE TABLE @tobetruncated

NOTE: This is not specific to REDSHFIT, mostly applies to all DB unless it supports special functions (like one I know Oracle has TABLE_EXISTS_ACTION). Truncate is like a all or nothing operation, and thats what makes it much better in performance than DELETE.