嗨,我知道有人问过这个问题,但是我没有找到正确的答案,当我尝试第二次插入时怎么会这样呢?
INSERT INTO phone_numbers (phone_number) VALUES ('226');
我得到了错误:
错误1452(23000):无法添加或更新子行:外键约束失败(
week7
。phone_numbers
,CONSTRAINTphone_numbers_ibfk_1
外键(user_id
)参考文献users
(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');
答案 0 :(得分:1)
在您的user_id字段中没有默认值,这就是为什么它会在您的插入下面使用时引发错误使用的原因
INSERT INTO phone_numbers (user_id,phone_number) VALUES (1,'226');