2016-08-17 1 views
0

나는 간단한 테스트 테이블을dashDB는 : 다음 dashDB의 SQL 대시 보드 내에서 다음 명령을 사용하여이 테이블에 데이터를 삽입하려고 선택

CREATE TABLE TEST (
KEY INTEGER PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), 
INTENTS VARCHAR(255), 
NO_FOUND SMALLINT); 

을 사용하여 생성 된 기본 컬럼에 삽입합니다.

Insert into table from (select item1,item2,item3 from TEST2 where some_condition); 

그러나 오류를 반환하지 않는 명령은 표시되지 않습니다. db2 'DEFAULT'및 '0'(정수의 경우 기본값)을 시도했으며 item1의 값으로 NULL을 시도했습니다.

값을 사용하여 삽입을 시도했으나 열 머리글로 인해 시스템에서 여러 값이 반환되었다고보고했습니다.

'OVERRIDING USER VALUE'도 시도했습니다. 하지만 JOIN 요소를 찾지 못했다고 불평합니다.

아이디어를 환영합니다.

+0

이 오류는 무엇입니까? –

답변

1

나는 이런 식으로 뭔가를 시도 할 것입니다 :

Insert into test(intents,no_found) 
(select item2,item3 from TEST2 where some_condition); 

을 당신은 세 개의 열 값을받을 두의 키 열이 발생하는 것을 지정합니다. 따라서 두 개의 관련 열만 선택합니다.

+0

그러나이 기능이 작동하는 것으로 나타났습니다. 원래 시도했습니다. VALUE (SELECT item2, item3 from TEST2 some_condition); INSERT INTO TEST (INTENTS, NO_FOUND) VALUE 그리고 이것은 실패했습니다. 질문을 게시 한 후 약 10 분 후에이 명령을 실행 한 후 VALUES를 명령에서 제외하면 작동 할 수 있습니다. 즉 위의 명령을 사용할 수 있습니다. db2에서와 같이 DEFAULT 값이 작동하지 않는 이유는 아직도 대답하지 않습니다. – timd

+0

여기에서 구문을 검토했습니다. http://www.ibm.com/support/knowledgecenter/SS6NHC/com.ibm.swg.im.dashdb.sql.ref.doc/doc/r0000970.html GENERATED BY DEFAULT를 사용 했습니까? 또는 항상 생성? –

+0

나는 GENERATED BY DEFAULT를 사용했다. KEYS의 값은 시스템에 의해 올바르게 생성되었다. 즉, 1,2,3,4,5 등. csv 파일을 통해로드 할 때. 하지만 삽입을 시도하고 'NULL'또는 DEFAULT를 사용하거나 KEY 값으로 0을 사용하면 올바른 다음 값을 만들면 오류가 발생합니다. DEFAULT는 이해되지 않고 NULL은 허용되지 않으며 0은 중복 값입니다. 빈 열을 제공하는 CURRENT TIMESTAMP ->를 사용하여 '삽입'을 사용하는 경우에도 동일한 문제가 발생합니다. – timd