Redshift如果TableA包含数据,则TRUNCATE TableB和将TableA插入TableB ELSE不执行任何操作

时间:2020-07-09 11:45:23

标签: sql amazon-redshift sql-insert truncate

我试图在Redshift中创建查询,但是我在努力创建正确的逻辑或使其完全运行。

我有2个表TableATableB

如果TableA包含数据,则擦除TableB并插入TableA中的数据。

伪:

CASE WHEN
(SELECT COUNT(*) FROM TABLEA) > 0
     THEN TRUNCATE TABLEB AND INSERT INTO TABLEB (SELECT * FROM TABLEA)
     ELSE DO NOTHING 
END

显然这行不通,所以我需要对IF语句做些什么吗?:

IF EXISTS (SELECT * FROM TABLEA)
    BEGIN
        TRUNCATE TABLE TABLEB
        INSERT INTO TABLEB (SELECT * FROM TABLEA)
    END
ELSE
    BEGIN
        PRINT 'nothing in table'
    END

1 个答案:

答案 0 :(得分:1)

您需要使用存储过程。无法将具有副作用的查询嵌套在普通SQL查询中的其他查询中。