10.2.3 插入示例
使用游标删除 包含一个 DELETE 语句的示例,其目的在于查找并删除表的重复的行。执
行此任务的更好方式是选择期望的行,而不是删除不期望的行。下列 GBase 8s ESQL/C 示
例中的代码展示执行此任务的一种方法:


此示例以一个常规的 INSERT 语句开始,该语句查找该表的所有非重复的行,并将它们插
入到另一表内,假定在程序启动之前已创建了该表。那个操作仅留下重复的行。(在演示
数据库中,orders 表有唯一约束,不可有重复的行。假设此示例处理的是其他数据库。)
然后,前面示例中的代码声明两个游标。第一个称为 dup_row,返回表中的重复的行。由
于 dup_row 仅用于输入,因此,它可使用 ORDER BY 子句来强制一些重复的顺序,而不
是在 使用游标删除 页上的示例中使用的物理记录顺序。在此示例中,按重复的行的日期对
它们排序,保留最早的日期,但您可基于该数据使用任何其他的顺序。
第二个游标 ins_row 是插入游标。此游标利用该能力来使用 C 结构 ord_row,以支持该行
中所有列的值。
剩余的代码检查通过 dup_row 返回的行。它将来自每一组重复的行中的第一行插入到新表
内,并忽略其余的。
为了简洁起见,前面的示例使用最简单的错误处理类型。如果在已处理了所有行之前发生
错误,则该样例代码回滚活动的事务。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




