INSERT문 – 테이블에 값 삽입하기 – SQLite3

테이블에 값을 삽입할 때는 INSERT 구문을 사용한다. 이 구문은 크게 세가지 형태로 만들어질 수 있다.

  1. INSERT INTO table (columns...) VALUES (.... ); : 각 칼럼에 (정의하지 않으면 스키마의 모든 칼럼에) ( ... ) 의 값을 각각 적용해서 새로운 레코드를 삽입한다. 지정한 칼럼이나 혹은 전체 칼럼과 값의 개수가 맞지 않으면 에러가 발생한다.
  2. INSERT INTO table SELECT ...; : SELECT 구문을 실행해서 그 결과의 각 행을 해당 테이블의 새로운 행으로 삽입한다. SELECT 결과의 각 칼럼의 순서와 개수는 테이블의 칼럼과 일치해야 한다. 아니면 최소한 칼럼 목록을 명시한다.
  3. INSERT INTO table DEFAULT VALUES; : 모든 칼럼의 디폴트값이 정의되어 있다면 디폴트 값으로 새 레코드를 생성한다.

액션

INSERT 키워드는 REPLACE, INSERT OR REPLACE 등으로 변경될 수 있다. 이는 특정 제한에 의한 충돌 발생 시 이를 해결하기 위한 방편을 정의한다. REPLACEINSERT OR REPLACE와 같은 명령이며 정확하게는 INSERT 문 내에서 ON CONFILCT에 대한 처리로, UNIQUE 제약이나 PRIMARY KEY가 겹치는 등의 삽입 오류가 발생했을 때, 기존 레코드를 UPDATE 하는 방식으로 처리한다.