2013-12-19 3 views
4

하나의 행만 삽입하는 sqlite 문이 있습니다.SQLITE 값으로 Select를 사용하여 여러 행 삽입

INSERT INTO queue (TransKey, CreateDateTime, Transmitted) 
VALUES (
    (SELECT Id from trans WHERE Id != (SELECT TransKey from queue)), 
    '2013-12-19T19:47:33', 
    0 
) 

id가 trans! = (Select TransKey from queue) 인 모든 행을 하나의 명령문에 삽입하는 방법은 무엇입니까?

답변

5
INSERT INTO queue (TransKey, CreateDateTime, Transmitted) 
    SELECT Id, '2013-12-19T19:47:33', 0 
    FROM trans WHERE Id != (SELECT TransKey from queue) 

INSERT의 두 가지 다른 "맛"이 있습니다. 사용중인 컴퓨터 (VALUES)는 INSERT 문에 "작성한"행을 하나 이상 삽입합니다. 다른 플레이크 (SELECT)는 데이터베이스의 하나 이상의 다른 테이블에서 검색되는 가변 개수의 행을 삽입합니다.

SELECT 버전을 사용하면 표현식과 간단한 상수를 포함 할 수 있습니다. 삽입하는 열의 수와 일치하는 한 다른 문안이 적용됩니다 값의 유형도 열 유형과 일치해야합니다.

+1

감사합니다. 아주 좋고 간단한 설명. – user1489995