0
upsert命令如何與update命令不同以及它如何工作請讓我通過示例和語法來理解。teradata中的UPSERT語句和它的工作原理是什麼?
upsert命令如何與update命令不同以及它如何工作請讓我通過示例和語法來理解。teradata中的UPSERT語句和它的工作原理是什麼?
UPSERT
命令插入不存在的行並更新存在的行。 在teradata中,可以使用MERGE
或UPDATE-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);
希望這會有所幫助。
Upsert是一個衆所周知的聲明 - 不僅在teradara上。你有沒有嘗試[搜索](http://meta.stackexchange.com/help/searching)? – Clijsters
對不起,如果我搜索錯誤的,但我很新。我試圖搜索它,但沒有完全理解。 –
沒有'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