1)
update foo set bar = bar + 1 where a = 123;
select bar into var from foo where a = 123;
Run Code Online (Sandbox Code Playgroud)
2)
update foo set bar = bar + 1 where a = 123 RETURNING bar into var;
Run Code Online (Sandbox Code Playgroud)
我假设第二个更快,因为它似乎需要少一个数据库之旅.这是真的?
正如我所预料的那样:
通常,应用程序需要有关受SQL操作影响的行的信息,例如,生成报告或执行后续操作.INSERT,UPDATE和DELETE语句可以包含RETURNING子句,该子句将受影响行中的列值返回到PL/SQL变量或主变量中.这消除了在插入或更新之后或删除之前选择行的需要.因此,需要更少的网络往返次数,更少的服务器CPU时间,更少的游标和更少的服务器内存.
归档时间: |
|
查看次数: |
234 次 |
最近记录: |