Heim >Datenbank >MySQL-Tutorial >Oracle批量update

Oracle批量update

WBOY
WBOYOriginal
2016-06-07 17:09:351321Durchsuche

Oracle批量update,这种写法,会更新t1表中的所有行:如果t1.a=t2.a的,就更新t2中查出的记录进t1;如果t1.alt;gt;t2.a的,t1中

需求:

将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表。

1.错误的写法:

[sql]

  • 这种写法,会更新t1表中的所有行:如果t1.a=t2.a的,就更新t2中查出的记录进t1;如果t1.at2.a的,t1中的记录会被更新成空(null)。

    正确的写法:

    [sql]

  • 解析:

    正确的写法,就是在后面加了一句 where exists(select 1 from table_name_2 t2 where t1.a=t2.a);

    这句话的意思是:如果存在t1.a=t2.a,就更新,否则,不更新,所以不会导致t1表中所有的记录都被更新。

    例:

    update table_name_1 set (a,b) = (select 1,2 from dual where 1=2);

    这个结果会把table_name_1中的记录全部更新成空(null),因为后面1=2不成立。

    总结:

    update时,要弄清限定条件,要测试!

    我的测试语句:

    [sql]

    我的业务语句:

    [sql]

    linux

  • Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:Oracle table()函数用法Nächster Artikel:Oracle的REF的读写方法