1
특정 조건과 일치하는 레코드를 삭제하는 SQL 문을 만들려고합니다. 그러나 모든 시도는 작동하지 않습니다. 예를 들어 내가 HSQLDB에서 작동하지 않습니다HSQLDB 및 SQuirreL에서 일괄 삭제
DECLARE @count int
SET @count = 1000
DELETE FROM HISTORY
WHERE HISTORYID IN (
SELECT TOP (@count) HISTORYID
FROM HISTORY
WHERE HISTTYPE = 14
)
하지만 DECLARE
을 시도했습니다. 제발 누군가가 내게 SQL을 통해 얻을 수있는 방법에 대한 조언을주고, 자바 측면에서 그것을하고 싶지 않아요.
이유는 간단합니다. 150KB 레코드를 삭제하려고하면 힙 오류가 발생하므로 삭제를 작은 조각으로 분할하고 싶습니다.
내가 성취 하려던 것이 아닙니다. 나는 'LIMIT'에 대해 알고 있는데, 나는 rownum으로 같은 것을 얻을 수 있었다. HSQLDB에 루프가 생기려고합니다. 그래서 한 문장을 수동으로 100 번 또는 1000 번 실행하지 않아도됩니다. – codeCompiler77