我不知道爲什麼它不會讓我創建表註冊。我只需要引用學生,uniadmin和課程,並且我已經在註冊之前創建了它們。MySQL - #1005 - 無法創建表'university.Enrolment'(errno:150)(詳情...)
它們都是相同的名稱,屬性類型和長度,所以我不知道這裏有什麼不正確。這發生在我在...中使用外鍵引用的所有表中,所以它必須與我所假設的有關。
錯誤我收到: SQL查詢:
CREATE TABLE Enrolment(
EnrolmentIDCHAR(3) NOT NULL ,
StudentIDCHAR(3) NOT NULL ,
StaffIDCHAR(3) NOT NULL ,
CourseIDCHAR(7) NOT NULL ,
CampusCHAR(2) NOT NULL ,
Trimester TINYINT(1) NOT NULL ,
CONSTRAINT PK_Enrolment PRIMARY KEY (EnrolmentID) ,
CONSTRAINT FK1_Enrolment FOREIGN KEY (StudentID) REFERENCES Student(StudentID) ,
CONSTRAINT FK2_Enrolment FOREIGN KEY (StaffID) REFERENCES UniversityAdmin(StaffID) ,
CONSTRAINT FK3_Enrolment FOREIGN KEY (CourseID) REFERENCES Course(CourseID) ,
CONSTRAINT FK4_Enrolment FOREIGN KEY (Campus) REFERENCES Course(Campus) ,
CONSTRAINT FK5_Enrolment FOREIGN KEY (Trimester) REFERENCES Course(Trimester) /*constraint Check_EnrolmentCampus check (Campus in ('GC', 'BR')*/
);
MySQL said: Documentation
#1005 - Can't create table 'university.Enrolment' (errno: 150) (Details…)
「詳細信息」 說:
InnoDB的文檔
支持事務,行級鎖和外鍵
[變量|緩衝池| InnoDB的狀態]
我的代碼:
DROP DATABASE IF EXISTS university;
CREATE DATABASE IF NOT EXISTS university;
USE university;
drop table if exists Student;
drop table if exists UniversityAdmin;
drop table if exists Course;
drop table if exists Academic;
drop table if exists Teaches;
drop table if exists Administers;
drop table if exists Manages;
drop table if exists Enrolment;
drop table if exists Scored;
Create table Student(
StudentID Char(3) not null,
Password Varchar(20) not null,
FirstName Varchar(15) not null,
MiddleName Varchar(15),
LastName Varchar(15) not null,
DateOfBirth Date not null,
Sex Char(1) not null,
HomeAddress Varchar(60) not null,
PhoneNumber Varchar(10) not null,
constraint PK_Student primary key(StudentID)
/*constraint Check_StudentSex check (Sex in ('M', 'F')*/
);
Create table UniversityAdmin(
StaffID Char(3) not null,
Password Varchar(20) not null,
Duty Varchar(20) not null,
FirstName Varchar(15) not null,
MiddleName Varchar(15),
LastName Varchar(15) not null,
DateOfBirth Date not null,
Sex Char(1) not null,
HomeAddress Varchar(60) not null,
PhoneNumber Varchar(10) not null,
constraint PK_UniversityAdmin primary key(StaffID)
/*constraint Check_UniversityAdminSex check (Sex in ('M', 'F')*/
);
Create table Course(
CourseID Char(7) not null,
Campus Char(2) not null,
Trimester TinyInt(1) not null,
CourseName Varchar(50) not null,
Convenor Varchar(30) not null,
Prerequisite Char(7),
Year TinyInt(4) not null,
constraint PK_Course primary key(CourseID, Campus, Trimester)
/*constraint Check_CourseCampus check (Campus in ('GC', 'BR')*/
);
Create table Academic(
StaffID Char(3) not null,
Password Varchar(20) not null,
Position Varchar(30) not null,
FirstName Varchar(15) not null,
MiddleName Varchar(15),
LastName Varchar(15) not null,
DateOfBirth Date not null,
Sex Char(1) not null,
HomeAddress Varchar(60) not null,
PhoneNumber Varchar(10) not null,
constraint PK_Academic primary key(StaffID)
/*constraint Check_AcademicSex check (Sex in ('M', 'F')*/
);
Create table Enrolment(
EnrolmentID Char(3) not null,
StudentID Char(3) not null,
StaffID Char(3) not null,
CourseID Char(7) not null,
Campus Char(2) not null,
Trimester TinyInt(1) not null,
constraint PK_Enrolment primary key (EnrolmentID),
constraint FK1_Enrolment foreign key (StudentID) references Student(StudentID),
constraint FK2_Enrolment foreign key (StaffID) references UniversityAdmin(StaffID),
constraint FK3_Enrolment foreign key (CourseID) references Course(CourseID),
constraint FK4_Enrolment foreign key (Campus) references Course(Campus),
constraint FK5_Enrolment foreign key (Trimester) references Course(Trimester)
/*constraint Check_EnrolmentCampus check (Campus in ('GC', 'BR')*/
);
發佈您收到的錯誤 –
我更新了我的錯誤消息 – Bartholomas
點擊詳細信息併發布完整的錯誤 –