postgres函数(双重循环)
来源:互联网 发布:js级联菜单 编辑:程序博客网 时间:2024/05/18 03:22
先看基本的语法:
NameCREATE FUNCTIONCREATE [ OR REPLACE ] FUNCTION name( [ [argmode] [argname]argtype[ { DEFAULT | = }default_expr] [, ...] ] ) [ RETURNSrettype | RETURNS TABLE (column_namecolumn_type[, ...] ) ] { LANGUAGElang_name | WINDOW| IMMUTABLE | STABLE | VOLATILE | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | COSTexecution_cost | ROWSresult_rows | SETconfiguration_parameter{ TOvalue| =value| FROM CURRENT } | AS 'definition' | AS 'obj_file', 'link_symbol' } ... [ WITH (attribute[, ...] ) ]
给一个参考链接函数语法详细说明
但是我看了这个语法之后有点一头雾水,毕竟定义里的东西比较全面,很多用不到。所以写一个简单的理解和小例子来解释一下。
首先说明我的需求:我希望将某一个点的横纵坐标逐渐递加使之变为覆盖一个区域的坐标集合,同时将这些经纬度插入到数据库。比如说从(0,0)开始,以0.1递加到(1,1)。显然这是一个双重循环,先x方向递加,到达界值y加上一个精度值,再接着循环。
CREATE OR REPLACE FUNCTION createdata (maxnum INTEGER) RETURNS void AS $BODY$DECLARE longtude FLOAT ;DECLARE latitude FLOAT ;DECLARE i INTEGER ;DECLARE j INTEGER ;BEGIN j := 0 ; i := 0 ; FOR i IN 0..10 LOOP j = 0 ; FOR j IN 0..20 LOOP maxnum = maxnum + 1 ; INSERT INTO MYTABLENAME ( "x", "y", "id" ) VALUES ( x, y, maxnum, ) ; x= x+ 0.2 ; END loop ; x= 110.0 ; y=y+0.2; END loop ;END ; $BODY$ LANGUAGE plpgsql;SELECT createdata (1929)
逻辑是不是很简单。有几个点需要稍微注意下:
(1)定义的变量使用时不需要引号,直接使用就可以;
(2)创建好的函数可以在数据库里的函数中查看。
(3)本来觉的挺难的,结果一写又觉得好简单~果然实践是最好课堂
阅读全文
0 0
- postgres函数(双重循环)
- postgres函数
- 双重循环的运用及void的函数调用
- 双重循环sql操作
- 嵌套实现双重循环
- 双重c:forEach 循环
- 关于双重循环
- 双重for循环Test
- JAVA跳出双重循环
- for语句双重循环
- 双重for循环优化
- 怎样理解双重循环?
- 双重循环嵌套举例
- sql语句双重循环
- 双重循环的跳出
- PHP双重循环 -- 九九乘法表
- 数组与双重循环
- 双重循环打印图形
- 页表实现从逻辑地址到物理地址的转换
- FrameLayout加RadioGroup实现底部点击切换
- python多进程变成学习之multiprocessing
- JVM terminated. Exit code=-1的解决方法
- malloc相关内容,你知道吗?
- postgres函数(双重循环)
- P1784 数独
- logging
- [高中]在泉五2009~2012大考成绩单和名次
- Unity优化杂谈2(MONO内存)
- 静态链表和动态链表的区别
- 20171009离线赛总结
- java获取当前时间
- 人机猜拳