我正在尝试解决Firebird存储过程中的问题。我需要从表中读取一些记录,(FOR SELECT ... BEGIN END),并在更改后,将其中的一些记录插回到BEGIN END循环中的同一个表(新记录)中。
除非我误解它,最简单的方法是使用光标,但我无法通过反复试验或从互联网上找到如何做到这一点。
< / LI>另一种方法是使用内存中的数组(不是表数据类型,而是在存储过程中声明的PSQL数据类型)。问题与上述相同。
第三个似乎是使用全局临时表 - 遗憾的是它们似乎不能在带有'普通'表的单个SQL语句中使用,所以我无法将结果复制到原始表表
最后的方法是创建一个表并将其用作中介 - 我只是不喜欢这种方法。如果没有其他解决方案,我会这样做
简而言之,任何人都可以帮我解决如何从表中选择一些行(在选择中使用其他表),并回写到同一个表中吗?
感谢
史蒂夫
ps只做FOR SELECT BEGIN ... INSERT ... END导致一个永无止境的循环。
答案 0 :(得分:1)