2016-11-03 6 views
1

내 열 중 하나에 제약 조건을 추가하려고하는데이 오류 메시지 "missing right parenthesis"이 표시됩니다. 처음에는이 메시지를 얻지 못했지만 SQL에 대해서는 상당히 익숙하지 않았기 때문에 구문이 동등하지 않습니다.SQL : 제약 조건 구문 오류를 확인 하시겠습니까?

CREATE TABLE FAGFELT 
(
bok varchar (255) PRIMARY KEY, 
felt varchar (255) 
CREATE CONSTRAINT chk_felt CHECK (felt IN("databaser", "programmering", "matematikk", "statistikk", "kjemi", "fysikk")) 
); 
+0

'추가'는 '변경'을위한 것입니다. 당신은'CREATE'에서 그것을 필요로하지 않습니다. 여기에있는 예제를 참조하십시오. http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj13590.html#rrefsqlj13590 –

+0

Noted, thanks! 내 게시물을 수정합니다. 여전히 오른쪽 괄호 tho가 누락되었다는 오류 메시지가 표시됩니다. – Peter

+3

문자열은 큰 따옴표가 아닌 작은 따옴표로 구분됩니다. 따라서 "데이터베이스"는 문자열 리터럴로 의도 한 경우 '데이터베이스'여야합니다. 나는 당신이'varchar (255)'뒤에 콤마를 넣고'create constraint'에서'create'를 제거하기를 원한다면 out-of-line constraint를 만들고 싶다고 생각합니다. –

답변

0

create constraint 잘못이며, 문자열 상수는 작은 따옴표 '에 공급 될 필요가있다. 큰 따옴표 "은 식별자 용입니다.

CREATE TABLE FAGFELT 
(
    bok varchar (255) PRIMARY KEY, 
    felt varchar (255), --<< you need a comma here 
    CONSTRAINT chk_felt 
     CHECK (felt IN('databaser', 'programmering', 'matematikk', 'statistikk', 'kjemi', 'fysikk')) 
);