我是MySQL的新手,几天前刚开始使用它。对于我的作业,为了简单起见,MySQL将其默认设置为MyISAM,并让我创建了一个用于MySQL练习的医院示例数据库。
但是出于我自己的个人目的和InnoDB与MyISAM相比实际强制执行FK的一些研究,我将默认设置切换为InnoDB,并尝试重新创建我用MyISAM完成的相同数据库。
然后问题就像卡车一样打击我,我的“病房”表如下:
create table Ward
(Code varchar(1) primary key not null,
Name varchar(15) not null,
Consultant varchar(3) not null);
alter table ward
add foreign key (Consultant)
references Doctor(ID);
我的医生桌是这样的:
create table Doctor
(ID varchar(3) primary key not null,
Name varchar(15) not null,
Ward varchar(1) not null);
alter table doctor
add foreign key (Ward)
references Ward(Code);
之后,我尝试在其中一个表中输入数据,当我尝试将数据分别输入“病房”表和“医生”表时,给出了以下错误:
错误1452(23000):无法添加或更新子行:外键 约束失败(
hospital
。ward
,CONSTRAINTward_ibfk_1
FOREIGN KEY(Consultant
)参考doctor
(ID
))错误1452(23000):无法添加或更新子行:外键 约束失败(
hospital
。doctor
,CONSTRAINTdoctor_ibfk_1
外键(Ward
)参考ward
(Code
))
如何在任何一个表格中输入数据?
谢谢,抱歉这个麻烦!
答案 0 :(得分:0)
这可能是错误的'让FK像这样来回走动。
您可以在创建表时禁用外键。但是你可能会遇到插入问题 - 一个插入会发现FK违规,因为你还没有完成另一个。
如果您的FK中没有循环,那么只需在右侧'中创建表格即可。顺序。