upsert命令与update命令有何不同以及它是如何工作的,请通过示例和语法让我理解。
答案 0 :(得分:1)
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);
希望这会有所帮助。