728x90
반응형
개요
SQLite에서 특정 컬럼에 저장된 데이터가 없을 경우에만 삽입하는 방법을 알아보겠습니다.
INSERT OR IGNORE
"name" 컬럼에 UNIQUE 제약 조건이 설정되어 있다면, 다음과 같이 "INSERT" 대신에 "INSERT OR IGNORE"로 실행하면 "name" 컬럼 데이터가 있는지 확인하여 이미 존재하는 경우 "UNIQUE KEY" 오류가 발생하지 않고 무시하게 됩니다. 물론 새로운 "name"이면 정상적으로 삽입됩니다.
INSERT OR IGNORE INTO table_name (name, other_column1, other_column2)
VALUES ('John Doe', 'value1', 'value2');
이 방법은 특정 컬럼에 UNIQUE 제약 조건이 있을 때 유용합니다.
INSERT SELECT
"INSERT" 하기 전에 "SELECT" 구분의 "WHERE" 절에서 동일한 "name" 컬럼 데이터가 있는지 확인하여 동일한 데이터가 없을 경우에만 삽입되도록 합니다.
다음은 "INSERT ... SELECT ..." 예제입니다.
INSERT INTO table_name (name, other_column1, other_column2)
SELECT 'John Doe', 'value1', 'value2'
WHERE NOT EXISTS (SELECT 1 FROM table_name WHERE name = 'John Doe');
주의할 점은 데이터양이 많은 경우 "name" 컬럼에 색인이 생성되어 있어야 빠른 응답을 기대할 수 있습니다.
'DB' 카테고리의 다른 글
[SQLite] 자동 증가형 컬럼 선언하기 (0) | 2024.05.30 |
---|