2017-12-14 18 views
0

를 만드는 동안이 내가 성공적으로 생성 한 다음 테이블입니다 : 내가받기 오류 (ORA - 00972) 테이블

CREATE TABLE Event 
(
event_id NUMBER(6) PRIMARY KEY, 
sport_id NUMBER(3) NOT NULL, 
og_id NUMBER(3) NOT NULL, 
event_title VARCHAR(100) NOT NULL, 
event_team VARCHAR(1) NOT NULL, 
no_per_team NUMBER(2) NOT NULL, 
event_gender VARCHAR(1) NOT NULL, 
CONSTRAINT check_event_id CHECK (event_id > 0), 
CONSTRAINT check_event_title_sport_id_og_id_event_team_event_gender UNIQUE (event_title, sport_id, og_id, event_team, event_gender), 
CONSTRAINT check_event_team CHECK (event_team IN ('Y','N')), 
CONSTRAINT check_event_team_no_per_team CHECK ((event_team='N' AND no_per_team=1) OR (event_team='Y' AND no_per_team>1)), 
CONSTRAINT check_event_gender CHECK (event_gender IN ('M','F')), 
CONSTRAINT fk_sport_id FOREIGN KEY(sport_id) REFERENCES Sport(sport_id), 
CONSTRAINT fk_og_id FOREIGN KEY(og_id) REFERENCES Olympic_Game(og_id) 
); 

하지만 이벤트라는 다른 테이블을 만들려고

다음
CREATE TABLE Olympic_Game 
(
og_id NUMBER(3) PRIMARY KEY, 
og_type_id NUMBER(3) NOT NULL, 
og_year NUMBER(4) NOT NULL, 
og_website VARCHAR(150), 
og_cancel VARCHAR(1) NOT NULL, 
country_id NUMBER(3) NOT NULL, 
CONSTRAINT check_og_id CHECK (og_id > 0), 
CONSTRAINT check_og_cancel CHECK (og_cancel IN ('Y','N')), 
CONSTRAINT check_og_year_og_type UNIQUE (og_type_id, og_year), 
CONSTRAINT fk_og_type_id FOREIGN KEY(og_type_id) REFERENCES OG_Type(og_type_id), 
CONSTRAINT fk_country_id FOREIGN KEY(country_id) REFERENCES Country(country_id) 
); 

CREATE TABLE Sport 
(
sport_id NUMBER(3) PRIMARY KEY, 
sport_title VARCHAR(100) UNIQUE NOT NULL, 
CONSTRAINT check_sport_id CHECK (sport_id > 0) 
); 

은 다음과 같은 오류가 나타납니다.

Error report - 
SQL Error: ORA-00972: identifier is too long 
00972. 00000 - "identifier is too long" 
*Cause: An identifier with more than 30 characters was specified. 
*Action: Specify at most 30 characters. 

어디에서 잘못했을 수 있습니까?

+2

오류가 명확하게 알려졌습니다. 제약 조건의 check_event_title_sport_id_event_team_event_gender 이름이 너무 길어서 30자를 넘지 않는 길이로 변경하십시오. Btw 귀하의 이름은 56 자입니다 .. – Hatik

+0

나는 제약 이름의 크기를 줄였습니다. 그것은 효과가 있었다. 감사. –

답변

3

오류가 매우 명확하게 나타납니다. check_event_title_sport_id_og_id_event_team_event_gender 제한 이름이 너무 깁니다.

30자를 넘지 않는 길이로 변경해야합니다.

는 Btw는 당신의 제약 조건 이름의 길이는

0

데이터베이스 시스템 테이블에서 식별자 이름을 저장, 그래서 당신은 긴 이름을 맨 안 ... 56 자입니다.