2011-05-08 6 views
3

SQL Server 2005에서 학생 데이터베이스를 만들지 만 외래 키와 관련하여 오류가 발생하여 문제가 무엇인지 확인하십시오. 외래 키 SQL Server

CREATE TABLE STUDENT 
(
STUDENT_REGNO INT NOT NULL PRIMARY KEY, 
STUDENT_FIRSTNAME VARCHAR(30) NOT NULL, 
STUDENT_LASTNAME VARCHAR(20) NOT NULL, 
STUDENT_FATHER_NAME VARCHAR(30) NOT NULL, 
STUDENT_EMAIL VARCHAR(20), 
STUDENT_MOBILE_NO VARCHAR(15), 
STUDENT_PHONE_NO VARCHAR(15), 
STUDENT_ADDRESS VARCHAR (40), 
DEPARTMENT_ID INT CONSTRAINT DEP_1 FOREIGN KEY 
REFERENCES DEPARTMENT(DEPARTMENT_ID), 
ACADEMIC_ID INT CONSTRAINT ACDEMIC FOREIGN KEY 
REFERENCES ACADEMIC(ACADEMIC_ID), 
CLASS_NAME VARCHAR(20) CONSTRAINT CLASS_1 FOREIGN KEY 
REFERENCES CLASS(CLASS_NAME) 
) 
CREATE TABLE FACULTY 
(
FACULTY_ID INT NOT NULL PRIMARY KEY, 
FACULTY_NAME VARCHAR(20) NOT NULL, 
FACULTY_FATHER_NAME VARCHAR(30) NOT NULL, 
FACULTY_EMAIL VARCHAR(20), 
FACULTY_ADDRESS VARCHAR(40) NOT NULL, 
FACULTY_MOBILE_NO VARCHAR(30), 
FACULTY_PHONE_NO VARCHAR(20), 
FACULTY_QUALIFICATION VARCHAR(20), 
DEPARTMENT_ID INT CONSTRAINT DEPARTEMNT_2 FOREIGN KEY 
REFERENCES DEPARTMENT(DEPARTMENT_ID), 
ACADEMIC_ID INT CONSTRAINT ACADEMIC_1 FOREIGN KEY 
REFERENCES ACADEMIC(ACADEMIC_ID) 
) 
CREATE TABLE USER1 
(
USERNAME VARCHAR(20) NOT NULL, 
USER_PASSWORD VARCHAR(6) NOT NULL, 
USER_TYPE VARCHAR(20) NOT NULL, 

) 
CREATE TABLE DEPARTMENT 
(
DEPARTMENT_ID int NOT NULL PRIMARY KEY, 
DEPARTMENT_NAME VARCHAR(20) NOT NULL, 
DEAPRTMENT_OFFICE_NO VARCHAR(20), 
) 
CREATE TABLE CLASS 
(
CLASS_NAME VARCHAR(20) NOT NULL, 
CLASS_STRENGTH INT NOT NULL, 
) 
CREATE TABLE ANNOUNCMENT 
(
ANNOUNCMENT_ID int NOT NULL PRIMARY KEY, 
ANNOUNCMENT_DESCRIPTION VARCHAR(50), 
ANNOUNCMENT_TITLE VARCHAR(45) 
) 
CREATE TABLE FORUM 
(
FORUM_ID int NOT NULL PRIMARY KEY, 
FORUM_NAME VARCHAR(35) NOT NULL, 
FORUM_DESCRIPTION VARCHAR(333), 
FORUM_DISCUSSION VARCHAR(22), 
POSTED_BY VARCHAR(34) 
) 
CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT) 
REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE) 
REFERENCES COURSE(COURSE_ID) 
) 
CREATE TABLE COURSE 
(
COURSE_NAME VARCHAR(20) NOT NULL, 
COURSE_CREDIT_HR INT NOT NULL, 
COURSE_DESCRIPTION VARCHAR(99), 
) 
CREATE TABLE TERM 
(
TERM_START_DATE DATETIME NOT NULL, 
TERM_END_DATE DATETIME NOT NULL, 
student_regno int CONSTRAINT STUDENT_2 FOREIGN KEY(STUDENT) 
REFERENCES STUDENT(STUDENT_REGNO) 
) 
CREATE TABLE PREVIOUS_ACADEMIC_INFO 
(
ACADEMIC_ID int NOT NULL PRIMARY KEY, 
DEGREE_DESCRIPTION VARCHAR(50), 
CERTIFICATION VARCHAR(30), 
DURATION DATETIME 
) 
CREATE TABLE TEACHER_COURSE 
(
AREA_OF_SPECILIZATION VARCHAR(30), 
faculty_id int CONSTRAINT FACULTY_1 FOREIGN KEY(FACULTY) 
REFERENCES FACULTY(FACULTY_ID) 
) 

먼저 오류 메시지 1769, 수준 16, 상태 1, 줄

65
외래 키 테이블 '학년'을 참조 에서 'STUDENT_5'참조 잘못된 열 '학생'.
메시지 1750, 수준 16, 상태 0, 줄 65
제약 조건을 만들지 못했습니다. 이전 오류를 참조하십시오

+0

오류 정보가 도움이 될 것입니다. –

+1

예, 사람들이 코드를 읽길 원하지만 오류를 게시하지 않으시겠습니까? 어떻게 합리적인가? –

+0

@ Jay @ Mitch Wheat : 오류 언급 ..... 외래 키가 올바르게 선언되었는지 여부를 알려주십시오. – james

답변

4
CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT) REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE) 
REFERENCES COURSE(COURSE_ID) 
) 

등등

CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 FOREIGN KEY(STUDENT_REGNO) REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 FOREIGN KEY(COURSE_ID) REFERENCES COURSE(COURSE_ID) 
) 

그리고 작아야합니다. 비록 그것이 필요하지 않으며 당신은 할 수 있습니다.

CREATE TABLE GRADE 
(
LETTER_GRADE CHAR NOT NULL , 
PERCENTAGE FLOAT NOT NULL, 
STUDENT_REGNO int CONSTRAINT STUDENT_5 REFERENCES STUDENT(STUDENT_REGNO), 
COURSE_ID int CONSTRAINT COURSE_1 REFERENCES COURSE(COURSE_ID) 
) 
+0

메시지 1767, 수준 16, 상태 0, 줄 1 외부 키 'DEP_1'이 (가) 잘못된 테이블 'DEPARTMENT'을 참조합니다. 메시지 1750, 수준 16, 상태 0, 줄 1 제약 조건을 만들지 못했습니다. 이전 오류를 참조하십시오. – james

+0

이제 이러한 오류가 발생합니다 .... – james

+0

테이블을 올바른 순서로 만들어야합니다. –