2012-01-31 10 views
0

에 자동 증가에 대한 쿼리를 나는 다음과 같은 데이터베이스가 :나는 SQLite는 데이터베이스

CREATE TABLE QUESTION (
    QUES_ID INTEGER AUTO INCREMENT, 
    TOPIC_ID INTEGER NOT NULL, 
    QUESTION_DESC TEXT NOT NULL, 
    CHOICE_A TEXT, 
    CHOICE_B TEXT, 
    CHOICE_C TEXT, 
    CHOICE_D TEXT, 
    PRIMARY KEY (QUES_ID,TOPIC_ID), 
    FOREIGN KEY (TOPIC_ID) REFERENCES TOPIC(TOPIC_ID) 
); 

내가 그런 정보를 삽입 ... 나는 다음과 같은 결과를 얻을 수

INSERT INTO 
    QUESTION (TOPIC_ID,QUESTION_DESC,CHOICE_A,CHOICE_B,CHOICE_C,CHOICE_D) 
VALUES 
    (1,'Blue or blue?','red?','yellow?','black?','yellow again?'); 

ques_id을 배정되지 않습니다!

QUES_ID  TOPIC_ID QUESTION_DESC CHOICE_A CHOICE_B CHOICE_C CHOICE_D  
---------- --------- ------------- --------- --------- --------- ------------- 
      1   Blue or blue? red?  yellow? black? yellow again? 

답변

0

:

A column declared INTEGER PRIMARY KEY will autoincrement.

그래서 DDL 문이 더 좋아 보일 것입니다 :

CREATE TABLE QUESTION (
    QUES_ID INTEGER PRIMARY KEY, 
    TOPIC_ID INTEGER NOT NULL, 
    QUESTION_DESC TEXT NOT NULL, 
    CHOICE_A TEXT, 
    CHOICE_B TEXT, 
    CHOICE_C TEXT, 
    CHOICE_D TEXT, 
    -- the primary key must be QUES_ID 
    -- if you want it to auto-increment 
    -- so if you really want you can add 
    -- a unique constraint here 
    CONSTRAINT qt UNIQUE (QUES_ID, TOPIC_ID), 
    FOREIGN KEY (TOPIC_ID) REFERENCES TOPIC (TOPIC_ID) 
); 
+0

이것은 토픽 테이블에 대한 나의 자격있는 협동을 제거하지 않을 것입니까? – mister

0

QUES_ID AUTO_INCREMENT

을 시도하고 당신은 항상 거기가되고 싶어요 정말 경우

QUES_ID MEDIUMINT NOT NULL AUTO_INCREMENT 
0

당신이 필요합니다 QUES_ID INTEGER PRIMARY KEY AUTOINCREMENT

0

같은 데이터를 삽입 해보십시오 :

INSERT INTO QUESTION values (1,'Blue or blue?','red?','yellow?','black?','yellow again?'); 

검색어에 자동 증가 열을 언급하지 않았고 NOT NULL을 언급하지 않았으므로 해당 열의 데이터 입력을 건너 뜁니다. SQLite FAQ

+2

오류 : 테이블 질문 7 열을 가지고 있지만 6 개 값이 오류는 내가 가진 무엇 공급되었다. – mister

관련 문제