mysql - 外键约束失败

mysql - Foreign Key Constraint Fails

嗨,我知道有人问过这个问题,但我还没有找到正确的答案,当我尝试进行第二次插入时怎么会这样:

INSERT INTO phone_numbers (phone_number) VALUES ('226');

我收到错误:

ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (week7.phone_numbers, CONSTRAINT phone_numbers_ibfk_1 FOREIGN KEY (user_id) REFERENCES 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');

因为在您的 user_id 字段中没有默认值,这就是为什么它会抛出错误,如下所示,您的插入将起作用

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