Skip to content

LOOKUP predicate DELETE

LOOKUP 테이블의 DELETE는 primary key equality 조건뿐 아니라 일반 predicate를 WHERE 절에 사용할 수 있습니다. 조건에 맞는 모든 row가 삭제됩니다.

Syntax

DELETE FROM table_name
 WHERE predicate;

WHERE 절 없이 실행하면 LOOKUP 테이블의 모든 row가 삭제됩니다.

지원하는 조건 예

-- 일반 컬럼 조건
DELETE FROM device_lookup
WHERE status = 'EXPIRED';

-- 날짜와 범위 조건
DELETE FROM device_lookup
WHERE updated_at < TO_DATE('2026-01-01 00:00:00')
   OR score < 10;

-- JSON path 조건
DELETE FROM device_lookup
WHERE meta->'$.region' = 'kr'
  AND JSON_EXTRACT_INTEGER(meta, '$.level') < 2;

지원 조건 범위

조건지원
pk_col = valueO
non_pk_col = valueO
<, <=, >, >=, <>O
BETWEENO
IN, NOT INO
LIKE, NOT LIKEO
AND, OR, NOTO
IS NULL, IS NOT NULLO
TO_DATE(...) 날짜 조건O
JSON ->, JSON_EXTRACT_*, JSON_IS_VALIDO
WHERE 절 없는 전체 삭제O

운영 주의사항

일반 predicate DELETE는 조건에 맞는 모든 row를 삭제합니다. 운영 데이터에서는 먼저 같은 조건으로 대상 범위를 확인한 뒤 실행합니다.

SELECT COUNT(*)
FROM device_lookup
WHERE status = 'EXPIRED';

DELETE FROM device_lookup
WHERE status = 'EXPIRED';

관련 문서

최근 업데이트