gpt4 book ai didi

sql - Oracle 合并与选择然后插入或更新

转载 作者:行者123 更新时间:2023-12-04 01:40:06 35 4
gpt4 key购买 nike

什么更快?

合并语句

    MERGE INTO table_name 
USING dual
ON (row_id = 'some_id')
WHEN MATCHED THEN
UPDATE SET col_name = 'some_val'
WHEN NOT MATCHED THEN
INSERT (row_id, col_name)
VALUES ('some_id', 'some_val')

或者

查询选择语句,然后使用更新或插入语句。
    SELECT * FROM table_name where row_id = 'some_id'

如果行数 == 0
    INSERT INTO table_name (row_id,col_name) VALUES ('some_id','some_val')

别的
    UPDATE table_name SET col_name='some_val' WHERE row_id='some_id'

最佳答案

经验法则是,如果您可以在一个 SQL 中执行此操作,则它通常会比在多个 SQL 语句中执行此操作要好。

如果它可以完成工作,我会选择 MERGE。

另外 - 另一个建议:您可以避免在语句中重复数据,例如:

MERGE INTO table
USING (SELECT 'some_id' AS newid,
'some_val' AS newval
FROM dual)
ON (rowid = newid)
WHEN MATCHED THEN
UPDATE SET colname = newval
WHEN NOT MATCHED THEN
INSERT (rowid, colname)
VALUES (newid, newval)

关于sql - Oracle 合并与选择然后插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274156/

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