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');
嗨,我知道有人问过这个问题,但我还没有找到正确的答案,当我尝试进行第二次插入时怎么会这样:
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
, CONSTRAINTphone_numbers_ibfk_1
FOREIGN KEY (user_id
) REFERENCESusers
(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');