从DB2图表中删除N个行


首先 , 你需要更新你的 " 关系型 " 数据库管理系统的知识 . 在图表中没有 " 顶端 " 或 " 底端 " 的 N 个行的概念 . 但对结果集有顶端或底端的概念 . 你可以用 FETCH FIRST N ROWS ONLY 子句来得到开始的 N 个行 , 但是得到底端的 N 个行是更困难的问题 . 为实现这点 , 你需要用可滚动的指针 . 可滚动的指针允许你在不用读取 / 得到所有的行前在结果集里前后移动。我建议你阅读 DB2 SQL 参考手册和 DB2 应用程序手册中可滚动的指针的内容(所有的 DB2 手册可以从网上免费下载)。基本上你应该用可滚动的指针的 FETCH LAST 语句,再用 FETCH PRIOR 语句循环 N-1 次。那将给出任何结果集的 “ 底端 ”

的 N 个行(分类或未分类的)。

对你的其它问题,我不明白你为什么要从图表里删除 N 个行。在这些行的数据是什么重要吗?我猜想你在问如何在 DELETE 的 WHERE 条件处限制行子集的删除,答案是否定的。你必须在同样 WHERE 条件处注明 FOR UPDATE OF 来打开一个指针,然后你需要在循环 N 次的行处打开 FETCH 和 DELETE WHERE CURRENT OF 指针。当然这意味着你必须重写一个程序。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus