嗨,我知道有人问过这个问题,但我还没有找到正确的答案,为什么当我尝试做我的第二个插入:
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');