2017-01-09 131 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); 

希望這會有所幫助。

相關問題