Merge Teradata合并与删除和插入-语法?

Merge Teradata合并与删除和插入-语法?,merge,teradata,Merge,Teradata,我一直在尝试为以下情况找到正确的语法(如果可能的话): 背景:临时表包含目标表的修复程序,因为它包含两种类型的行: 要删除的不正确行(它们与目标表中的行匹配)和应插入的“已更正”行(它将替换所有“删除”行) 所以本质上:删除任何匹配的内容; 插入任何不匹配的内容 我当前遇到的错误是: “语法错误:“DELETE”关键字和“ELSE”关键字之间应存在某些内容” 感谢您的帮助,谢谢 您可以使用多语句DELETE和INSERT语句将临时表中的数据更正到目标表中 DELETE FROM TAB_A WH

我一直在尝试为以下情况找到正确的语法(如果可能的话):

背景:临时表包含目标表的修复程序,因为它包含两种类型的行: 要删除的不正确行(它们与目标表中的行匹配)和应插入的“已更正”行(它将替换所有“删除”行)

所以本质上:删除任何匹配的内容; 插入任何不匹配的内容

我当前遇到的错误是:

“语法错误:“DELETE”关键字和“ELSE”关键字之间应存在某些内容”


感谢您的帮助,谢谢

您可以使用多语句DELETE和INSERT语句将临时表中的数据更正到目标表中

DELETE FROM TAB_A WHERE EXISTS (SELECT 1 FROM TAB_B WHERE TAB_A.F1 = TAB_B.F1 AND TAB_A.F2 = TAB_B.F2)
;INSERT INTO TAB_A SELECT * FROM TAB_B;

阅读手册<代码>匹配时删除,不匹配时删除,然后插入值(scr.*)Teradata不支持在合并中同时删除和插入值statement@MatBailie是吗?因为你的陈述不起作用;)嗨,很抱歉没有提到这一点,但我正在寻找的东西是交易安全。不过,我想我可以使用开始/结束事务块,谢谢。我想这就是您的要求:背景:临时表包含目标表的修复程序,因为临时表中的不正确行将被删除,并替换为临时表中的一个正确行。很抱歉,我的评论不够清楚,我同意。。merge语句显示了我想要的内容,只是这是不可能的。更新了要求。。
DELETE FROM TAB_A WHERE EXISTS (SELECT 1 FROM TAB_B WHERE TAB_A.F1 = TAB_B.F1 AND TAB_A.F2 = TAB_B.F2)
;INSERT INTO TAB_A SELECT * FROM TAB_B;