这是我正在使用的某些表的示例。

create TABLE People(
peopleID int not null,
name varchar(40) not null,
primary key (peopleID)
);


create table car(
carID int not null,
peopleID int not null,
primary key (carID),
foreign key (peopleID) references People(peopleID)
);


如何确保在插入“汽车”时,“ peopleID”外键作为主键存在于“人”表中。

例如,我希望以下语句引发错误:

INSERT INTO car VALUES (123, 343);


...因为'PeopleID'中不存在343,因为它为空。

谢谢

最佳答案

这段评论有点长。

您已经描述了foreign key约束的作用:


  对于支持外键的存储引擎,MySQL拒绝任何INSERT
  或UPDATE操作,尝试在其中创建外键值
  如果子表中没有匹配的候选键值
  父表。


该约束在here中描述。

关于mysql - 插入数据后,如何确保外键作为另一个表中的主键存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21046132/

10-13 05:26