嗨,我知道有人问过这个问题,但我还没有找到正确的答案,为什么当我尝试做我的第二个插入:
INSERT INTO phone_numbers (phone_number) VALUES ('226');
我得到了错误:
错误1452(23000):无法添加或更新子行:外键约束失败(week7
.phone_numbers
,约束phone_numbers_ibfk_1
外键(user_id
)引用用户
(id
))
下面的DDL代码:
create table users (
id int unsigned not null auto_increment,
name varchar(100) not null,
primary key(id)
);
INSERT INTO users (name) VALUES ('alex');
create table phone_numbers (
id int unsigned not null auto_increment,
user_id int unsigned not null,
phone_number varchar(25) not null,
primary key(id),
foreign key (user_id) references users (id)
);
INSERT INTO phone_numbers (phone_number) VALUES ('226');
由于在user_id字段中没有defalult值,这就是为什么它抛出错误的原因
INSERT INTO phone_numbers (user_id,phone_number) VALUES (1,'226');
主要内容:在创建表时设置外键约束,在修改表时添加外键约束,删除外键约束MySQL外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西
问题内容: 刚在Mac OS X 10.6上安装了MySQL 5.5,并且在许多表上都有一个奇怪的问题。下面是一个例子。插入行失败,但不应插入外键约束。它引用的外键确实存在。有任何想法吗? 更新 :多次删除并重新创建数据库后,我在上述插入失败后进行了操作,并得到了令人惊讶的结果。找不到父语言表!这似乎很奇怪…有什么想法吗? 更新2 :事实证明,这只是MySQL中的一个 巨大 错误。显然,最新版本的
问题内容: 我收到此错误消息: 第40行的错误1217(23000):无法删除或更新父行:外键约束失败 …当我尝试放置桌子时: …定义如下: 有趣的是, 我已经删除 了模式中具有外键的 所有其他表。实际上,除了表外,数据库是空的。 如果数据库中没有其他对象,怎么可能会有子行?据我所知,InnoDB不允许在其他模式上使用外键,对吗? (我什至可以运行命令:-?) 问题答案: 两种可能性: 在另一个架
当我要执行这段代码时,我会收到以下错误消息: 您的SQL语法有错误;请查看与您的MySQL server版本相对应的手册,以了解使用“add CONSTRAINTFOREIGN KEY在第11行引用`pay_s'时使用的正确语法 但我不明白问题所在。感谢您的帮助!
mysql 5.7 外键约束 主表:部门表 从表:员工表 添加外键:从表 dep_id 关联 主表 id >[danger] CASCADE > 级联更新 主表数据更新从表会更新外键 级联删除 主表数据删除,从表会一起删除
我正在做一个基本的例子来测试级联删除操作,但我得到了异常。这是我的实体