Redshift 如果 TableA 包含数据,则 TRUNCATE TableB 并将 TableA 插入 TableB ELSE 什么都不做
Redshift If TableA contains data then TRUNCATE TableB and INSERT TableA into TableB ELSE do nothing
我正在尝试在 Redshift 中创建查询,但我正在努力创建正确的逻辑或使其达到 运行 句号。
我有 2 个表 TableA
和 TableB
。
如果 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
您需要使用存储过程。不能在普通 SQL 查询中将具有副作用的查询嵌套在其他查询中。
我正在尝试在 Redshift 中创建查询,但我正在努力创建正确的逻辑或使其达到 运行 句号。
我有 2 个表 TableA
和 TableB
。
如果 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
您需要使用存储过程。不能在普通 SQL 查询中将具有副作用的查询嵌套在其他查询中。