赞
踩
以某一查询结果作为更新结果
- update t_infe set name = (
- select t_pub.name from t_pub where t_pub.id = 21
- )
- -- update语句的限制条件
- where t_infe.t_pub = 21;
该写法要求select
语句只能返回一个一行一列的结果集。update
的where
条件是必不可少的,select
语句的where
条件只是用来限制查询的结果集的,不要误认为是update
语句的限制条件。如果缺少update
语句的where
限制条件,会将全部的记录进行更新。
现在将上面的语句应用到过程
当中去。
- create or replace procedure public.init_t_inf_pub()
- language plpgsql
- as $procedure$
- begin
- for i in 1..100 loop
- update t_infe set name = (
- select t_pub.name from t_pub where t_pub.id = i
- )
- where t_infe.t_pub = i;
- end;
- $procedure$
-
- call init_t_inf_pub();
该过程在for循环内写死了起止范围,这不重要。该过程的作用是动态地将t_pub.id从1到100的记录中的name字段的值对应地,对应地,对应地添加到t_infe中去。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。