gpt4 book ai didi

sql - Oracle SQL : update if exists else insert

转载 作者:行者123 更新时间:2023-12-02 07:48:41 27 4
gpt4 key购买 nike

Possible Duplicate:
Oracle: how to UPSERT (update or insert into a table?)

嗨,

我有一个表,如果该记录已存在,则必须修改该表,否则必须插入新记录。Oracle sql 不接受IF EXISTS ,否则我会做 if - update - else - insert询问。我看过MERGE但它只适用于多个表。我该怎么办?

最佳答案

MERGE 不需要“多个表”,但它确实需要一个查询作为源。像这样的东西应该有效:

MERGE INTO mytable d
USING (SELECT 1 id, 'x' name from dual) s
ON (d.id = s.id)
WHEN MATCHED THEN UPDATE SET d.name = s.name
WHEN NOT MATCHED THEN INSERT (id, name) VALUES (s.id, s.name);

或者,您可以在 PL/SQL 中执行此操作:

BEGIN
INSERT INTO mytable (id, name) VALUES (1, 'x');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
UPDATE mytable
SET name = 'x'
WHERE id = 1;
END;

关于sql - Oracle SQL : update if exists else insert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com