首页 > 数据库 >postgresql/lightdb中WHERE CURRENT OF的使用

postgresql/lightdb中WHERE CURRENT OF的使用

时间:2023-01-28 10:38:56浏览次数:41  
标签:postgresql tf1 CURRENT China curs1 WHERE select

最近看PG源码,在语法分析中有看到CURRENT OF元素。在PG游标中,WHERE CURRENT OF可以用来使用游标更新或删除当前指向的行。

语法:​​UPDATE table SET ... WHERE CURRENT OF cursor;​​​ 语法:​​DELETE FROM table WHERE CURRENT OF cursor;​

实例:

select * from tf1;
c1 | c2 | c3 | c4 | c5
----+------+--------+----------+-------
1 | 1000 | China | Dalian | 23000
2 | 4000 | Janpan | Tokio | 45000
3 | 1500 | China | Xian | 25000
4 | 300 | China | Changsha | 24000
5 | 400 | USA | New York | 35000
6 | 5000 | USA | Bostom | 15000


CREATE OR REPLACE FUNCTION tfun3() RETURNS int AS $$
DECLARE
curs1 refcursor;
y tf1%ROWTYPE;
BEGIN
open curs1 FOR SELECT * FROM tf1;
fetch last from curs1 into y;
RAISE NOTICE 'curs1 : %', y.c2;

delete from tf1 WHERE CURRENT OF curs1;
return 0;
END;
$$ LANGUAGE plpgsql;

select tfun3();
select * from tf1;
c1 | c2 | c3 | c4 | c5
----+------+--------+----------+-------
1 | 1000 | China | Dalian | 23000
2 | 4000 | Janpan | Tokio | 45000
3 | 1500 | China | Xian | 25000
4 | 300 | China | Changsha | 24000
5 | 400 | USA | New York | 35000

这样,最后一行就被删除。


标签:postgresql,tf1,CURRENT,China,curs1,WHERE,select
From: https://blog.51cto.com/zhjh256/6024722

相关文章

  • postgresql/lightdb中对应ctas的select into
    在postgresql/lightdb中,可以使用​​SELECTINTO(它不是ISOSQL的一部分,但是因为历史原因存在)​​​创建一个新表并且用一个查询计算得到的数据填充它。这些数据不会像......
  • PostgreSQL 源码安装及 yum 安装
     #源码安装tarzxvfpostgresql-10.0.tar.gzmvpostgresql-10.0/usr/local/pgsqlcd/usr/local/pgsql/./configure--prefix=/usr/local/pgsql--without-readlinemakema......
  • PostgreSQL(四)存储结构
    先上一张图:这是 PostgreSQL的 DMS管理方式,与oracle管理一样。DMS(databasemanagementspace)数据库管理空间,数据库中管理,容器是预分配的文件。SMS(systemmanagementsp......
  • PostgreSQL(五)系统参数配置
    参数名称大小写不敏感,参数主要有5种类型:boolean,string,integer,floatingpoint,enumerated(enum). 配置文件路径:/usr/local/pgsql/data/postgresql.conf/usr/local/p......
  • docker中使用postgresql数据库
    1.拉取默认最新运行容器由于最新版删减了东西,所以会报错参考感谢以下博主让我从爬出深坑~#拉取postgreshttps://www.hangge.com/blog/cache/detail_3073.html......
  • 如何在 Kubernetes 部署 PostgreSQL
    文章目录​​1.简介​​​​2.条件​​​​3.helm部署posgresql​​​​3.1添加Helm存储库​​​​3.2默认安装​​​​3.3选参安装​​​​3.4持久存储安装​​......
  • vue2升级vue3:getCurrentInstance—Composition api/hooks中如何获取$el
    在vue2中,我们进程看到this.$el操作。但是在vue3如何获取组件的当前dom元素呢? 可以利用 getCurrentInstancegetCurrentInstanceVue3.x中的核心方法:getCurrentIns......
  • intellij idea 启动报错 java.util.concurrent.CompletionException: java.net.BindEx
    ​​welcometomyblog​​错误描述:启动intellijidea时报错java.util.concurrent.CompletionException:java.net.BindException:Addressalreadyinuse:bindat......
  • PostgreSQL(PG)考试认证 2023新春计划
    邀请返现每人可向PGCCC官方班班索要一个码,每邀请1人报名成功,可返50元,上不封顶本活动仅限PCP、PCM在被邀请人完成考试后,返还。(不报名也可以参与) 特惠日期:2023年1月2......
  • postgresql/lightdb中WHERE CURRENT OF的使用
    最近看PG源码,在语法分析中有看到CURRENTOF元素。在PG游标中,WHERECURRENTOF可以用来使用游标更新或删除当前指向的行。语法:UPDATEtableSET...WHERECURRENTOFcurs......