postgresql/lightdb中WHERE CURRENT OF的使用
最近看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
这样,最后一行就被删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2017-01-24 WARN: Establishing SSL connection without server's identity verification is not recommended
2017-01-24 maven parent工程.pom修改后未自动更新
2017-01-24 c++性能之对象与指针性能比较、以及java与c++性能对比实测
2017-01-24 c++性能之map实现性能比较
2017-01-24 MQ内存消耗与积压分析
2017-01-24 c++获取时间戳
2017-01-24 c++学习之map基本操作