提问者:小点点

mysql-外键约束失败


嗨,我知道有人问过这个问题,但我还没有找到正确的答案,为什么当我尝试做我的第二个插入:

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');

共1个答案

匿名用户

由于在user_id字段中没有defalult值,这就是为什么它抛出错误的原因

INSERT INTO phone_numbers (user_id,phone_number) VALUES (1,'226');