我想知道是否以及如何遍歷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,... –