Redshift:如果存在则截断表

Gat*_*eja 3 sql truncate drop-table amazon-redshift

建议使用代替.但是,truncate table 不支持该子句。另一种方法是重新创建,但需要 DDL。如果只有表存在的话有什么办法吗?TRUNCATE TABLEDELETEIF EXISTSDROP TABLETRUNCATE TABLE

Ami*_*mar 6

您有两种选择来实现它:

SQL 过程/脚本
使用IF条件,检查表是否存在,然后仅截断表。

使用普通 SQL 语句
Createtable 与if not exists结合Truncate使用,这将确保表始终存在并且连续的 SQL 语句不会出错并停止。

CREATE TABLE @tobetruncated IF NOT EXISTS
TRUNCATE TABLE @tobetruncated
Run Code Online (Sandbox Code Playgroud)

注意:这并不是特定于 REDSHFIT,主要适用于所有数据库,除非它支持特殊功能(就像我知道 Oracle 有的那样TABLE_EXISTS_ACTION)。截断就像全有或全无操作,这就是它的性能比删除好得多的原因。