博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Postgres SQL 用法摘记
阅读量:5849 次
发布时间:2019-06-19

本文共 1687 字,大约阅读时间需要 5 分钟。

hot3.png

1. 游标使用
-- Function: send_system_mail()-- DROP FUNCTION send_system_mail();CREATE OR REPLACE FUNCTION send_system_mail_to_all(mail_max_count integer, sender_param character varying,    title_param character varying, content_param character varying, create_time_param bigint)  RETURNS integer AS$BODY$DECLAREcharac_cur refcursor;mail_cur refcursor;charac_id_c bigint;mail_count integer;mail_id_c integer;ret integer;beginopen charac_cur for select charac_id from account order by charac_id;loop    fetch charac_cur into charac_id_c;    if not found then        exit;    end if;    --检查每个角色系统邮件数量是否超限    select count(id) from mail where (type&(1<<1)>>1) = 1 and charac_id = charac_id_c into mail_count;    if mail_count > mail_max_count then        open mail_cur for (select id from mail                    where (type&(1<<1)>>1) = 1 and charac_id = charac_id_c                    order by create_time desc  limit mail_count - mail_max_count +1);        loop            fetch mail_cur into mail_id_c;            if not found then                exit;            end if;            --删除多余的邮件            delete from mail where id = mail_id_c;            --RAISE NOTICE 'value % % %',charac_id_c,  mail_count, mail_id_c;        end loop;        close mail_cur;                  end if;    INSERT INTO mail(charac_id, type, create_time, sender, title, content)    VALUES (charac_id_c, 2, create_time_param, sender_param,            title_param, content_param);end loop;close charac_cur;return 1; end$BODY$  LANGUAGE plpgsql VOLATILE  COST 100;ALTER FUNCTION send_system_mail()  OWNER TO postgres;COMMENT ON FUNCTION send_system_mail() IS '发送系统邮件';

转载于:https://my.oschina.net/guqiwei/blog/74407

你可能感兴趣的文章
从魔兽世界到激战2看MMO网游角色成长
查看>>
转两好文防丢:Debian 版本升级/降级 & Linux 应用程序失去输入焦点问题的解决...
查看>>
HDU - Pseudoforest
查看>>
Nexus杂
查看>>
Android --- GreenDao的实现(ORM框架)
查看>>
js_coding
查看>>
Linux平台Java调用so库-JNI使用例子
查看>>
PCM数据格式,多少字节算一帧
查看>>
Spring Data JPA
查看>>
KACK的处理方法
查看>>
POJ3438 ZOJ2886 UVALive3822 Look and Say【数列】
查看>>
IE6的height小BUG
查看>>
说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
查看>>
强制卸载kernel
查看>>
web渗透测试中WAF绕过讲解(二)基于HTTP协议绕过
查看>>
【CSON原创】CSS的障眼法:利用border实现图片的翻转
查看>>
oracle:plsql学习总结(oracle database 10g sql 开发指南)
查看>>
〔转〕Word域的应用和详解2_等式和公式域
查看>>
FZU 1502 Letter Deletion
查看>>
寄存器是什么 有什么作用
查看>>