不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

Q:oracle库,同时更新表的两个字段?

Posted on 2025-02-06 15:12  三年三班王小朋  阅读(79)  评论(0)    收藏  举报

在执行这些操作之前,建议先备份数据或在一个测试环境中验证这些SQL语句的效果,以避免意外的数据丢失。

1、使用 UPDATE 结合子查询:

对于t2表中col字段为空的记录,如果t1表中有对应的col值相同的记录,则使用t1表中的col1和col2字段值更新t2表的相关字段。

UPDATE t2
SET (col1, col2) = (SELECT t1.col1, t1.col2 
                     FROM t1 
                     WHERE t1.col = t2.col)
WHERE EXISTS (SELECT 1 
              FROM t1 
              WHERE t1.col = t2.col)
AND t2.col1 IS NULL;

2、如果没有非空条件,可使用MERGE 语句。oracle不支持MERGE 增加条件。

根据t1表中的数据更新t2表中的记录,如下

MERGE INTO t2
USING t1
ON (t1.col = t2.col)
WHEN MATCHED THEN
    UPDATE SET 
        t2.col1 = t1.col1,
        t2.col2 = t1.col2;