Ski*_*kiy 1 mysql sql foreign-keys create-table
我用注释标记的两个外键有什么问题?
创建数据库db; 使用db;
create table Flug(
Flugbez varchar(20),
FDatum Date,
Ziel varchar(20),
Flugzeit int,
Entfernung int,
Primary Key(Flugbez,FDatum));create table Flugzeugtyp(
Typ varchar(20),
Hersteller varchar(20),
SitzAnzahl int,
Reisegeschw int,
primary key(Typ)
);create table flugzeug(
Typ varchar(20),
SerienNr int,
AnschDatum Date,
FlugStd int,
primary key(Typ,SerienNr),
foreign key(Typ)references Flugzeugtyp(Typ));create table Abflug(
Flugbez varchar(20),
FDatum Date,
Typ varchar(20),
Seriennr int,
Kaptaen varchar(20),
Primary key(Flugbez,FDatum,Typ,SerienNr),
Foreign key(Flugbez)references Flug(Flugbez) ,
- 外键(FDatum)引用Flug(FDatum),
外键(Typ)引用Flugzeugtyp(Typ)
- ,外键(SerienNr)引用Flugzeug(SerienNr)
);
当我取消注释这些时,我得到:
ERROR 1005(HY000):无法创建表'db.abflug'(错误号:150)
我使用MySQL Server 5.5的标准安装
问题是您引用的主键是复合键,但您只是尝试引用外键中的一列(而不是第一列).
例如,您primary key(Typ,SerienNr)
在表flugzeug中定义主键,但在表Abflug中您尝试引用Foreign key(SerienNr) references Flugzeug(SerienNr)
.
您必须引用整个键(Foreign key(Typ, SerienNr) references Flugzeug(Typ,SerienNr)
).
归档时间: |
|
查看次数: |
166 次 |
最近记录: |