2017-01-09 129 views
0

upsert命令如何与update命令不同以及它如何工作请让我通过示例和语法来理解。teradata中的UPSERT语句和它的工作原理是什么?

+0

Upsert是一个众所周知的声明 - 不仅在teradara上。你有没有尝试[搜索](http://meta.stackexchange.com/help/searching)? – Clijsters

+0

对不起,如果我搜索错误的,但我很新。我试图搜索它,但没有完全理解。 –

+3

没有'UPSERT'命令,只有'UPDATE ... ELSE INSERT ...'。这是'MERGE'的前身,见http://www.info.teradata.com/HTMLPubs/DB_TTU_15_00/index.html#page/SQL_Reference/B035_1146_015K/ch03.023.409.html – dnoeth

回答

1

UPSERT命令插入不存在的行并更新存在的行。 在teradata中,可以使用MERGEUPDATE-ELSE-INSERT来实现。

UPDATE-ELSE-INSERT语法:

UPDATE department 
SET budget_amount = 80000 
WHERE department_number = 800 ELSE 
    INSERT INTO department(department_number, department_name, budget_amount, manager_employee_number) 
VALUES(800, 
     'Test Dept', 
     80000, 
     NULL); 

UPDATE-ELSE-INSERT是Teradata的功能。

MERGE语法:

MERGE INTO DEPARTMENT USING 
VALUES(700, 
     ' Test Department', 
     80000) AS dept(dept_num, dept_name, budget_amt) ON dept.dept_num = department_number WHEN MATCHED THEN 
UPDATE 
SET budget_amount = dept.budget_amt WHEN NOT MATCHED THEN 
INSERT 
VALUES(dept_num, 
     dept_name, 
     budget_amt, 
     NULL); 

希望这会有所帮助。

相关问题