这是我正在使用的一些表的示例。
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)
);
如何确保当我插入'car'时,'peopleID'外键在'People'表中作为主键存在。
例如,我希望以下语句抛出错误:
INSERT INTO car VALUES (123, 343);
...因为'PeopleID'中不存在343,因为它是空的。
由于
答案 0 :(得分:1)
评论时间有点长。
您已经描述了foreign key
约束的作用:
对于支持外键的存储引擎,MySQL拒绝任何INSERT 或尝试在a中创建外键值的UPDATE操作 子表如果没有匹配的候选键值 父表。
约束描述为here。