mysql-外键约束失败

时间:2019-02-12 06:07:01

标签: mysql sql ddl

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

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

我得到了错误:

  

错误1452(23000):无法添加或更新子行:外键约束失败(week7phone_numbers,CONSTRAINT phone_numbers_ibfk_1外键(user_id)参考文献usersid

下面的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 个答案:

答案 0 :(得分:1)

在您的user_id字段中没有默认值,这就是为什么它会在您的插入下面使用时引发错误使用的原因

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