zoukankan      html  css  js  c++  java
  • PostgreSQL for in loop

    模板是

    FOR var IN REVERSE 1..10 LOOP
        statement_list
    END LOOP;

    REVERSE 不知道什么意思……

    一般用的是

    FOR var IN 1..10 LOOP statement_list END LOOP;

    如果是navicate for+tab出来的模板,需要自己手动定义值,不然是不生效的。

    var是一个变量,它刚开始的时候是等于1..10中的1,可以对var进行数学计算,但是不管var在中途改变为什么值,这个循环还是从1开始循环到10执行10次的。statement_list中是自己的逻辑操作,每一个sql用一个;隔开。

    中途可以打印var的值,用

    raise notice 'var的值:%', var;

    完整的一个示例:

    -- 如果存在该存储过程就删除
    drop function if exists function_test3();
    -- replace之前先调用了drop是因为如果返回值不同是不能直接替换的
    create or replace function function_test3() returns void as
    -- 标记开始和起始位置,用$$和$$也可以,主要是查询存储过程的结果是用的$BODY$
    $BODY$
    --     这里可以先定义一些变量
        BEGIN
            FOR var_a IN  1..10 LOOP
        raise notice '变量var_a的值是:%', var_a;
    END LOOP;
        END
    $BODY$
    LANGUAGE plpgsql; 
    
    -- 调用存储过程
    select function_test3();
    select function_test3()
    > 注意:  变量var_a的值是:1
    > 注意:  变量var_a的值是:2
    > 注意:  变量var_a的值是:3
    > 注意:  变量var_a的值是:4
    > 注意:  变量var_a的值是:5
    > 注意:  变量var_a的值是:6
    > 注意:  变量var_a的值是:7
    > 注意:  变量var_a的值是:8
    > 注意:  变量var_a的值是:9
    > 注意:  变量var_a的值是:10
    > OK
    > 时间: 0.001s
  • 相关阅读:
    时间过的好快啊
    IBM的 SOA架构设计还是写的很好的
    昨天尝试了Layout,也谈Silverlight的布局
    这几天忙着选车了!
    痛苦的事情是将自己的想法表达出来
    花了一天的工夫才写了一篇PPT
    昨天抄写了gameEnvironment的行为模式
    XMLHTTP对像异步请求四步曲
    第一篇: 第一个简单的vs 2008 ASP.NET Ajax 范例
    什么是 Silverlight?
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/13780871.html
Copyright © 2011-2022 走看看