2017-04-01 33 views
1

私は大学のデータベースを開発しようとしており、制約エラーを投げているテーブルはほとんどありません。私はさまざまな回避策を試しました: 1.私のeningeステータスを確認してください。すべてのテーブルでINNODBです。 2.更新時にパラメータを削除します(ただし、正しく実行しているかどうかはわかりません)。 3. NULL参照とデータ型のチェック。参照される外部キーは、参照を行っているテーブルの主キーと同じデータ型を持ちます。 これは私のクエリです:MySqlの外部キー制約の問題

CREATE TABLE Faculty (
FacNo   CHAR(11)  NOT NULL, 
FacFirstName VARCHAR(30) NOT NULL, 
FacLastName VARCHAR(30) NOT NULL, 
FacCity  VARCHAR(30) NOT NULL, 
FacState  CHAR(2)  NOT NULL, 
FacDept  CHAR(6)  NULL, 
FacRank  CHAR(4)  NULL, 
FacSalary  DECIMAL(10,2) NULL, 
FacSupervisor CHAR(11)  NOT NULL, 
FacHireDate DATETIME  NULL, 
FacZipCode CHAR(10)  NOT NULL, 
CONSTRAINT FacultyPK PRIMARY KEY (FacNo), 
CONSTRAINT SupervisorFK FOREIGN KEY (FacSupervisor) REFERENCES Faculty 
ON DELETE NO ACTION 
ON UPDATE NO ACTION)engine = innodb; 

これは参照して募集テーブルです:

CREATE TABLE Offering (
OfferNo  INTEGER  NOT NULL, 
CourseNo  CHAR(6)  NOT NULL, 
OffTerm  CHAR(6)  NOT NULL, 
OffYear  INTEGER  NOT NULL, 
OffLocation VARCHAR(30) NULL, 
OffTime  VARCHAR(10) NULL, 
FacNo   CHAR(11)  NOT NULL, 
OffDays  CHAR(4)  NULL, 
CONSTRAINT OfferingPK PRIMARY KEY (OfferNo), 
CONSTRAINT CourseFK FOREIGN KEY (CourseNo) REFERENCES Course, 
CONSTRAINT FacultyFK FOREIGN KEY (FacNo) REFERENCES Faculty )ENGINE =  INNODB; 

答えて

0

あなたの外部キー参照が列を欠いている:

CONSTRAINT SupervisorFK FOREIGN KEY (FacSupervisor) REFERENCES Faculty(Facno) 

CONSTRAINT CourseFK FOREIGN KEY (CourseNo) REFERENCES Course(CourseNo), 

CONSTRAINT FacultyFK FOREIGN KEY (FacNo) REFERENCES Faculty(FacNo) 

HereはSQLフィドルです。 CourseNo外部キーはありません。なぜなら、それは質問に定義されていないからです。