TDSQL PostgreSQL版 游标的使用

postgres=# begin;BEGINpostgres=# DECLARE tdsql_pg_cur SCROLL CURSOR FOR SELECT * from tdsql_pg ORDER BY id; DECLARE CURSOR。

相关产品
TDSQL PostgreSQL版 产品页,含版本规格、价格与购买入口。

一、定义一个游标

游标需要放在一个事务中使用。

二、提取下一行数据

postgres=# DECLARE tdsql_pg_cur SCROLL CURSOR FOR SELECT * from tdsql_pg ORDER BY id; DECLARE CURSORpostgres=# FETCH NEXT from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg(1 row)postgres=# FETCH NEXT from tdsql_pg_cur ; id | nickname —-+———– 2 | tdsql_pg好(1 row)

三、提取前一行数据

postgres=# FETCH PRIOR from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg(1 row)postgres=# FETCH PRIOR from tdsql_pg_cur ; id | nickname —-+———-(0 rows)

四、提取最后一行

postgres=# FETCH LAST from tdsql_pg_cur ; id | nickname —-+———— 5 | tdsql_pg swap(1 row)

五、提取第一行

postgres=# FETCH FIRST from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg(1 row)

六、提取该查询的第 x 行

postgres=# FETCH ABSOLUTE 2 from tdsql_pg_cur ; id | nickname —-+———– 2 | tdsql_pg好(1 row)postgres=# FETCH ABSOLUTE -1 from tdsql_pg_cur ; id | nickname —-+———— 5 | tdsql_pg swap(1 row)postgres=# FETCH ABSOLUTE -2 from tdsql_pg_cur ; id | nickname —-+————— 4 | tdsql_pg default(1 row)

x 为负数时则从尾部向上提。

七、提取当前位置后的第 x 行

postgres=# FETCH ABSOLUTE 1 from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg(1 row)postgres=# FETCH RELATIVE 2 from tdsql_pg_cur ; id | nickname —-+———– 3 | tdsql_pg好(1 row)postgres=# FETCH RELATIVE 2 from tdsql_pg_cur ; id | nickname —-+———— 5 | tdsql_pg swap(1 row)

每提取一次数据,游标的位置都是会前行。

八、向前提取 x 行数据

postgres=# FETCH FORWARD 2 from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg 2 | tdsql_pg好(2 rows)postgres=# FETCH FORWARD 2 from tdsql_pg_cur ; id | nickname —-+————— 3 | tdsql_pg好 4 | tdsql_pg default(2 rows)

九、向前提取剩下的所有数据

postgres=# FETCH FORWARD 2 from tdsql_pg_cur ; id | nickname —-+————- 1 | hello tdsql_pg 2 | tdsql_pg好(2 rows)postgres=# FETCH FORWARD all from tdsql_pg_cur ; id | nickname —-+————— 3 | tdsql_pg好 4 | tdsql_pg default 5 | tdsql_pg swap(3 rows)

十、向后提取 x 行数据

postgres=# FETCH BACKWARD 2 from tdsql_pg_cur ; id | nickname —-+————— 5 | tdsql_pg swap 4 | tdsql_pg default(2 rows)

十一、向后提取剩下的所有数据

postgres=# FETCH BACKWARD all from tdsql_pg_cur ; id | nickname —-+————- 3 | tdsql_pg好 2 | tdsql_pg好 1 | hello tdsql_pg(3 rows)

赞 (0)
上一篇 4天前
下一篇 4天前