什么是teradata中的UPSERT声明及其工作原理?

时间:2017-01-09 12:11:00

标签: sql teradata

upsert命令与update命令有何不同以及它是如何工作的,请通过示例和语法让我理解。

1 个答案:

答案 0 :(得分: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);

希望这会有所帮助。