2016-12-14 108 views
0

因此,這是我的項目,我們在表CLASS SCHEDULE中有2個外鍵。 但每當我試着輸入代碼將外鍵值插入表

INSERT INTO ClassSchedule (Class_Schedule_ID, Class_Date, Class_Time, University_ID_Number) 
VALUES 
('88','22/12/16','12:00', (select University_ID_Number FROM STUDENT WHERE University_ID_Number = 15567)); 

我得到了「字段列表」錯誤的未知列「University_ID_Number」。 有什麼幫助嗎? 下面的代碼

-- Create Database 
CREATE DATABASE TimeTurn; 
USE TimeTurn; 

-- Student Table 
CREATE TABLE Student (
    `Students_ID` INT NOT NULL, 
    `University_ID_Number` INT NOT NULL, 
    `First_Name` VARCHAR(10) NOT NULL, 
    `Last_Name` VARCHAR(10) NOT NULL, 
    `University` VARCHAR(45) NOT NULL, 
    `Student_Year` YEAR NOT NULL, 
    `Telephone_Number` INT NOT NULL, 
    PRIMARY KEY (`Students_ID`), 
    UNIQUE INDEX `University_ID_Number_UNIQUE` (`University_ID_Number` ASC)); 

-- Class Table 
CREATE TABLE Class (
    `Class_ID` INT NOT NULL, 
    `Class_Name` VARCHAR(20) NOT NULL, 
    `Class_Major` VARCHAR(45) NOT NULL, 
    `Class_Number` INT NOT NULL, 
    `Class_Description` VARCHAR(45) NOT NULL, 
    `Professor_Name` VARCHAR(20) NOT NULL, 
    PRIMARY KEY (`Class_ID`), 
    UNIQUE INDEX `Major_ID_UNIQUE` (`Class_ID` ASC)); 

-- CLass Schedule Table 
CREATE TABLE ClassSchedule (
    `Class_Schedule_ID` VARCHAR(10) NOT NULL, 
    `STUDENTS_Students_ID` INT NOT NULL, 
    `CLASS_Class_ID` INT NOT NULL, 
    `Class_Date` DATE NOT NULL, 
    `Class_Time` TIME NOT NULL, 
    PRIMARY KEY (`Class_Schedule_ID`), 
    UNIQUE INDEX `Class_Schedule_ID_UNIQUE` (`Class_Schedule_ID` ASC), 
    CONSTRAINT `fk_CALSS SCHEDULE_STUDENTS` 
    FOREIGN KEY (`STUDENTS_Students_ID`) 
    REFERENCES `TimeTurn`.`STUDENT` (`Students_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_CALSS SCHEDULE_CLASS1` 
    FOREIGN KEY (`CLASS_Class_ID`) 
    REFERENCES `TimeTurn`.`CLASS` (`Class_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 

-- Club Table 
CREATE TABLE Club (
    `Club_ID` INT NOT NULL, 
    `Club_Name` VARCHAR(20) NOT NULL, 
    `Club_Location` VARCHAR(45) NOT NULL, 
    `Club_Description` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`Club_ID`)); 

-- Club Schedule Table 
CREATE TABLE ClubSchedule (
    `Club_Schedule_ID` INT NOT NULL, 
    `STUDENTS_Students_ID` INT NOT NULL, 
    `CLUB_Club_ID` INT NOT NULL, 
    `Club_Name` VARCHAR(20) NOT NULL, 
    `Club_Time` TIME NOT NULL, 
    `Club_Date` DATE NOT NULL, 
    PRIMARY KEY (`Club_Schedule_ID`), 
    UNIQUE INDEX `Club_Schedule_ID_UNIQUE` (`Club_Schedule_ID` ASC), 
    CONSTRAINT `fk_CLUB SCHEDULE_STUDENTS1` 
    FOREIGN KEY (`STUDENTS_Students_ID`) 
    REFERENCES `TimeTurn`.`STUDENT` (`Students_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_CLUB SCHEDULE_CLUB1` 
    FOREIGN KEY (`CLUB_Club_ID`) 
    REFERENCES `TimeTurn`.`CLUB` (`Club_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 

-- Job Table 
CREATE TABLE Job (
    `Job_ID` INT NOT NULL, 
    `Job_Name` VARCHAR(20) NOT NULL, 
    `Job_Location` VARCHAR(20) NOT NULL, 
    `Job_Description` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`Job_ID`), 
    UNIQUE INDEX `Job_ID_UNIQUE` (`Job_ID` ASC)) 
ENGINE = InnoDB; 

-- Work Schedule Table 
CREATE TABLE WorkSchedule (
    `Work_Schedule_ID` INT NOT NULL, 
    `STUDENTS_Students_ID` INT NOT NULL, 
    `JOB_Job_ID` INT NOT NULL, 
    `Work_Name` VARCHAR(20) NOT NULL, 
    `Work_Time` TIME NOT NULL, 
    `Work_Date` DATE NOT NULL, 
    PRIMARY KEY (`Work_Schedule_ID`), 
    UNIQUE INDEX `Work_Schedule_ID_UNIQUE` (`Work_Schedule_ID` ASC), 
    CONSTRAINT `fk_WORK SCHEDULE_STUDENTS1` 
    FOREIGN KEY (`STUDENTS_Students_ID`) 
    REFERENCES `TimeTurn`.`STUDENT` (`Students_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_WORK SCHEDULE_JOB1` 
    FOREIGN KEY (`JOB_Job_ID`) 
    REFERENCES `TimeTurn`.`JOB` (`Job_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 

-- Event Table 
CREATE TABLE Event (
    `Event_ID` INT NOT NULL, 
    `Event_Name` VARCHAR(20) NOT NULL, 
    `Event_Location` VARCHAR(20) NOT NULL, 
    `Event_Description` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`Event_ID`)); 

-- Social Schedule Table 
CREATE TABLE SocialSchedule (
    `Social_Schedule_ID` INT NOT NULL, 
    `STUDENTS_Students_ID` INT NOT NULL, 
    `EVENT_Event_ID` INT NOT NULL, 
    `Social_Activity_Time` TIME NOT NULL, 
    `Social_Activity_Date` DATE NOT NULL, 
    PRIMARY KEY (`Social_Schedule_ID`), 
    UNIQUE INDEX `Social_Schedule_ID_UNIQUE` (`Social_Schedule_ID` ASC), 
    CONSTRAINT `fk_SOCIAL SCHEDULE_STUDENTS1` 
    FOREIGN KEY (`STUDENTS_Students_ID`) 
    REFERENCES `TimeTurn`.`STUDENT` (`Students_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_SOCIAL SCHEDULE_EVENT1` 
    FOREIGN KEY (`EVENT_Event_ID`) 
    REFERENCES `TimeTurn`.`EVENT` (`Event_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 
+0

您的表ClassSchedule沒有名爲「University_ID_Number」的列。我錯過了你的困惑嗎? – Anand

+0

此外,這不是你想要的 - '''select University_ID_Number FROM STUDENT WHERE University_ID_Number = 15567''' – Anand

+0

University_ID_Number在STUDENT表中。我知道它是。但是我找不到將University_ID_Number值引用到我的CLASS SCHEDULE表的方法。如果有幫助,學生的價值已經在數據庫中。 – darkpunk

回答

0

與University_ID_Number鍵創建計劃表類。考慮爲大學創建一個維度表,與Student表中的大學信息分開,以便應用不要重複自己的最佳做法。

-- CLass Schedule Table 
CREATE TABLE ClassSchedule (
    `Class_Schedule_ID` VARCHAR(10) NOT NULL, 
    `STUDENTS_Students_ID` INT NOT NULL, 
    `CLASS_Class_ID` INT NOT NULL, 
    `Class_Date` DATE NOT NULL, 
    `Class_Time` TIME NOT NULL, 
    'University_ID_Number' VARCHAR(10) NOT NULL -- add this 
    PRIMARY KEY (`Class_Schedule_ID`), 
    UNIQUE INDEX `Class_Schedule_ID_UNIQUE` (`Class_Schedule_ID` ASC), 
    CONSTRAINT `fk_CALSS SCHEDULE_STUDENTS` 
    FOREIGN KEY (`STUDENTS_Students_ID`) 
    REFERENCES `TimeTurn`.`STUDENT` (`Students_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_CALSS SCHEDULE_CLASS1` 
    FOREIGN KEY (`CLASS_Class_ID`) 
    REFERENCES `TimeTurn`.`CLASS` (`Class_ID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION); 
+0

這或我正在經歷它,它看起來像只有Student_ID和Class_ID是外國人,所以我試圖添加University_ID_Number的東西不會工作,除非我將它添加到課程表中。 – darkpunk

+0

嗯,我試着用Student ID''INSERT INTO ClassSchedule(Class_Schedule_ID,Class_Date,Class_Time,Student_ID) VALUES ('88','22/12/16','12:00','60093345');並且不在此處工作 – darkpunk

+0

確保您的INSERT語句具有正確的數據類型。當您插入INSERT或只有VARCHAR類型的數據時,是否需要INT引號? – JL82559