질문 : 두 개의 외래 키가있는 테이블이 있습니다. 두 개의 외래 키를 선택적으로 만들고 싶습니다 (즉, NULL로 설정할 수 있습니다). 나는 시도하고 외래 키에 대한 NULL 선언하지 않고 테이블을 작성하는 경우, 그 외부 키가 암시 적으로 NOT NULL이 될SERIAL 외래 키를 null로 설정할 수 있습니까?
ERROR: conflicting NULL/NOT NULL declarations for column "activityid" of table "eventassociation"
: 나는 테이블을 생성하는 명령을 실행하려고하면, 나는 오류가 발생합니다.
외래 키 activityID
및 roleID
이 null 일 수 있도록하려면 어떻게해야합니까?
감사합니다,
hypoz
추가 정보 :
내가 PostgreSQL을 실행하고 (는 apt-get 버전) 우분투 12.04에.
CREATE TABLE eventAssociation (
associationID SERIAL PRIMARY KEY,
studentID VARCHAR(12) references volunteers(studentID),
eventID SERIAL references events(eventID),
activityID SERIAL references activities NULL,
roleID SERIAL references roles(roleID) NULL,
coordinatorConfirmed BOOLEAN,
userRevokeable BOOLEAN
)
그리고 참조
가, 여기에activities
테이블에 대한 스키마입니다 :
이 문제가있는 테이블입니다. 역할 테이블은 다른 필드 이름을 제외하고는 거의 동일합니다.
CREATE TABLE activities (
activityID SERIAL PRIMARY KEY,
eventID integer references events(eventID),
name varchar(128),
description TEXT
)
아, 나는'SERIAL'는'integer'의 동의어 이었다는 것을 인상이었다. 나는 그것을 잘못 받아 들인다. 그리고 연속은 실제로 연속열을 가진 정수를 의미한다? –
이 솔루션은 완벽하게 작동했습니다. –
@ 64bit_twitchyliquid'SERIAL'에 대한 자세한 정보는 다음에서 볼 수 있습니다 : http://www.postgresql.org/docs/current/static/datatype-numeric.html –