2016-10-17 3 views
1

select 문을 사용하여 최근에 만든 테이블에 135 행을 삽입해야하는 문제가 있습니다. 해당 테이블에 NOT NULL 제약 조건이 몇 개 있으며 정확한 정보를 삽입하기 위해 SELECT를 변경하는 방법을 이해하지 못합니다.INSERT INTO 문을 사용하는 동안 테이블의 NOT NULL 열을 채우십시오.

는 여기에 내가 할 노력하고있어 무엇 : 콜라는 일련 번호가

CREATE SEQUENCE target_table_s1 START WITH 1001; 

INSERT INTO target_table(colA,ColB,ColC,ColD,ColE) 
target_table_s1.NEXTVAL, 
(SELECT (colB,colC,ColD) 
FROM source_table), 
colE; 

합니다 (TARGET_TABLE에 대한 기본 키를 제공하기 위해) 및 콜은 기본적으로 그냥 SYSDATE 같은 간단한 뭔가 할 필요가있다.

어떻게하면이 작업을 할 수 있습니까? 제가 위에 쓴 것은 작동하지 않을 것이라는 것을 압니다. 그러나 그것은 제가 성취하고자하는 것을 설명 할 수있는 최선의 방법입니다. 적절한 "INSERT INTO SELECT"형식을 따르도록 select 문 안에 시퀀스를 넣을 방법을 찾아야합니까?

답변

4

난 그냥 여기 INSERT INTO ... SELECT 구조를 이용해야한다고 생각 :

INSERT INTO target_table (colA,ColB,ColC,ColD,ColE) 
SELECT target_table_s1.NEXTVAL, ColB, ColC, ColD, SYSDATE 
FROM source_table 

그 위의 가정이 열에 E.

+0

SYSDATE을 삽입 할 따라서이 거의 내가 찾고 있어요 것입니다 나는 내 문제를 거의 해결했다. 어쩌면 마지막으로 조금 도와 줄 수 있을지도 몰라. 여기에 새로운 문맥이있다 : – theonlydidymus

+0

INSERT INTO target_table (colA, colB, colC, colD, colE) – theonlydidymus

+0

SELECT seq.NEXTVAL, f.colB, f.colC, f.colD, SYSDATE FROM (select colB, colC, colD from source_table); 원본 테이블을 f로 별칭하는 방법은 무엇입니까? 그냥 "FROM source_table f"를 사용합니까? from 문에 여러 테이블이 포함되면 어떻게됩니까? (미안하지만, 끝내지 않은 경우에도 내 의견은 계속 제출합니다.) – theonlydidymus