我想知道是否以及如何遍历delete
语句的结果。如何循环删除
的delete
语句能够返回删除记录的值:
Firebird 2.5 Language Reference
DELETE FROM {target} [[AS] alias] [WHERE {search-conditions | CURRENT OF cursorname}] [PLAN plan_items] [ORDER BY sort_items] [ROWS <m> [TO <n>]] [RETURNING <returning_list> [INTO <variables>]] <m>, <n> ::= Any expression evaluating to an integer. <returning_list> ::= ret_value [, ret_value ...] <variables> ::= :varname [, :varname ...]
但使用returning
语法,有超过一个结果的delete
记录给我:
单身选择多行。
块语句像这样
EXECUTE BLOCK
RETURNS (
ADSREF TYPE OF DMN_REFID)
AS
begin
for
delete from m_s_ad_memo
returning ADSREF into :adsref
do
suspend;
end
返回以下错误消息:
无效令牌。
动态SQL错误。
SQL错误代码= -104。
令牌未知 - 第7行第5列。
删除。
所以,这可能吗?
它可以与周围的for select ... do
一起使用 - 环形和光标?
这种方法将如何?
我还没有使用光标,但。
两个链接的“使用游标”是在https://stackoverflow.com/a/45373980/976391例子 - 但是游标可以在很慢FB3,他们仍然在3.01,3.02,... –