SELECT * FROM DB FETCH 100 ROW ONLY
- >没关系。
delete from DB FETCH 100 ROW ONLY
- >为什么不?
答案 0 :(得分:2)
FETCH FIRST仅xxx行
当您不需要完整的结果集时,基本上只是一个性能快捷方式。手册说:
select-statement中的fetch-first-clause规范 结果表为只读。只读结果表不能是 在UPDATE或DELETE语句中引用。 fetch-first-clause 不能出现在包含UPDATE子句的语句中。
这应该有效
DELETE FROM mytbl
WHERE pk IN (SELECT pk FROM mytbl
FETCH FIRST 100 ROWS ONLY
)
答案 1 :(得分:1)
你可以试试这个: -
DELETE FROM (SELECT * FROM DB FETCH 100 ROWS ONLY)
修改: - 强>
你可以试试这个: -
DELETE FROM (SELECT * FROM "BACKUPLIB/SCDKISLOG3" FETCH 100 ROWS ONLY)
答案 2 :(得分:0)
使用此表格:
delete from mytable a where rrn(a) in
(select rrn(b) from mytable b fetch first 100 rows only)
不能使用{delete from(select ...}表单。表函数仅在子选择中有效,而不是DELETE。