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