2016-06-07 4 views
1

안녕하세요. Data라는 테이블에 여러 테이블 열을 삽입하고 싶습니다. SourceTable이라는 다른 테이블의 여러 열과 Data에 추가 된 모든 행의 독립 값이있는 열 중 하나입니다.고정 값으로 한 테이블에서 다른 테이블로 데이터 삽입

SourceTable이라는 테이블에 Column1과 Column2가 있고 source_id가 미리 계산되어 있고이 쿼리의 Data에 추가 된 모든 행에 대해 동일하다고 가정합니다.

INSERT INTO Data (Columns1, Column2, source_id) 
SELECT Column1, Column2 
FROM SourceTable 
UNION SELECT 2; 

이 중 하나를 시도했지만 작동하지 않습니다. SELECT 2가 하나의 행만 반환하기 때문일 가능성이 큽니다.

+0

'select 2 from foo'는 테이블의 모든 레코드에 대해 하드 코드 된'2 '를 선택할 것입니다. 필드/함수 값만을 ​​선택할 수있는 것은 아닙니다. –

답변

4

당신의 문제는 2 개의 값을 삽입하기 위해 SQL에 3 개의 열을 제공한다는 것입니다. 당신의 노동 조합이 선택하면 source_id가 2가 될 것이고 다음과 같은 것을 원할 것입니다.

INSERT INTO Data (Columns1, Column2, source_id) 
SELECT Column1, Column2, 2 
FROM SourceTable 

삽입 할 열의 개수는 삽입하려는 열의 개수와 일치해야합니다. 당신이 그것을하고 있던 방법은이 결과를 가져올 것입니다;

Column1 Column2 source_id 
Value1 Value2 
2 

하지만 유니언을 사용하는 쿼리가 동일한 수의 열을 가질 필요가 있기 때문에 공용체조차도 실패했을 것입니다.

+0

감사합니다. 그 일을했습니다. – aragorn

관련 문제