我是SQL新手,正在尝试创建一个如下的模式。然而,我似乎不能正确获得成员表的外键。我试着在表创建后添加它,最初似乎工作正常,但现在当我试图添加一个测试数据行时,我得到了这个错误。
我敢肯定,这是我错过的非常愚蠢的事情,但如果有人能指出我做错了什么,那就太好了!
错误代码:1452。无法添加或更新子行:外键约束失败
(mamperProject
。成员
,CONSTRAINTmember_ibfk_2
FOREIGN KEY(MemNo
)REFERENCES预订
(MemNo
))
CREATE DATABASE MemberProject;
USE MemberProject;
CREATE TABLE Skill(
SkillCode VARCHAR(20) NOT NULL,
Description VARCHAR(140),
ChargeOutRate VARCHAR(20),
PRIMARY KEY (SkillCode)
);
CREATE TABLE Member(
MemNo VARCHAR(10) NOT NULL,
MemName VARCHAR(40),
Department VARCHAR(20),
SkillCode VARCHAR(20),
PRIMARY KEY (MemNo),
FOREIGN KEY (SkillCode) REFERENCES Skill (SkillCode)
);
CREATE TABLE Booking(
MemNo VARCHAR(10) NOT NULL,
ProjectNo VARCHAR(10) NOT NULL,
DateWorkedOn VARCHAR(20),
PRIMARY KEY (ProjectNo, MemNo),
FOREIGN KEY (MemNo) REFERENCES Member (MemNo)
);
无法使用Member外键创建数据库,因此我在事实之后添加它
ALTER table Member
ADD foreign key (MemNo) references Booking (MemNo);
CREATE TABLE Project(
ProjectNo VARCHAR(10) NOT NULL,
ProjName VARCHAR(40),
StartDate VARCHAR(20),
EndDate VARCHAR(40),
Budget VARCHAR(40),
Proj_Manager_MemNo VARCHAR(10),
PRIMARY KEY (ProjectNo),
FOREIGN KEY (ProjectNo) REFERENCES Booking (ProjectNo) ON UPDATE CASCADE
);
您正在插入哪些数据?如果要向成员表中添加数据,则必须首先在技能表中为技能代码添加数据。其他具有外键的表也是如此。
问题内容: 当我执行以下两个查询时(我将它们简化为绝对必要): 我收到以下错误:错误1005(HY000):无法创建表’./test/bar.frm’(errno:150) 我的错误在哪里?半个小时盯着我看,我还没找到他。 问题答案: 来自约束 如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件
问题内容: 我目前正在为我们团队的项目设计数据库结构。我目前在脑海中有一个非常疑问的问题:能否将外键用作另一个表上的主键? 以下是我们系统的数据库设计表: 我想做的是,该表应包含学生用户和指导顾问用户的ID(应该是系统的登录凭据)和密码。简而言之,和表的主键也是表的外键。但我不确定是否允许。 另一个问题是:一个表中也存在,这需要一个(其为中表)和一个(这也是在)它的每个记录的。如果学生和辅导员的I
我用phpmyadmin导出了我的数据库,其中包括禁用外键和执行到单个事务中,如果存在则删除表,但是当我想导入文件mysql时会抛出一个错误: 第35行错误1215(HY000):无法添加外键约束 谢谢你。
问题内容: 因此,当我想添加外键时出现错误。我在带有EER图模型的MySQL Workbench中添加了外键。工作台尝试添加的行是: 我得到的错误是: 我搜索了解决方案,发现括号很重要或反引号,但是由于代码是由该工具创建的,因此对我来说似乎是正确的。是什么导致错误? 问题答案: 对于任何看此的人,都可以在EER图模型窗口中设置要用于生成SQL脚本的MySQL版本。转到“编辑”,“首选项”,然后是“
问题内容: 我正在用MySQL Workbench做一个小型数据库。我有一个名为“ Immobili”的主表,它具有由四列组成的主键:(Comune,Via,Civico,Immobile)。 现在,我还有其他三个表,它们具有相同的主键(Comune,Via,Civico,Immobile),但是这些字段也引用了表Immobili。 第一个问题:我可以同时创建主键还是外键吗? 第二个问题:当我尝试
我有一个包含数据的表,其中一个行需要存在于另一个表中。所以,我想要一个外键来保持引用的完整性。 但是,正如您所看到的,我的外键所指向的表,列不是PK。有没有一种方法来创建这个外键,或者可能有一种更好的方法来维护这个引用完整性?