gpt4 book ai didi

sql - 错误 1005 (HY000) : Can't create table when using foreign keys

转载 作者:行者123 更新时间:2023-11-29 04:29:47 24 4
gpt4 key购买 nike

我用注释标记的两个外键有什么问题?

create database db;
use 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),
-- Foreign key(FDatum) references Flug(FDatum),
Foreign key(Typ) references Flugzeugtyp(Typ)
-- ,Foreign key(SerienNr) references Flugzeug(SerienNr)
);

当我取消注释外键时,出现以下错误:

ERROR 1005 (HY000): Can't create table 'db.abflug' (errno: 150)

我使用的是 MySQL Server 5.5 的标准安装。

最佳答案

问题是您引用的主键是复合键,但您只是试图引用外键中的一列(而不是第一列)。

例如,您在表 flugzeug 中定义主键 primary key(Typ,SerienNr) 但在表 Abflug 中您尝试引用 Foreign key(SerienNr) references Flugzeug(SerienNr).

您必须引用整个 key (外键(Typ, SerienNr)引用 Flugzeug(Typ,SerienNr))。

关于sql - 错误 1005 (HY000) : Can't create table when using foreign keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com