mysql的外键个人见解
在外键约束中,"主表"和"子表"的概念并不是绝对的,而是相对的。通常,我们说的"主表"是指包含被引用列的表,而"子表"是指包含外键列的表。
在MySQL中,外键约束是在"子表"上建立的。具体来说,外键约束定义在子表的一个列或一组列上,这个列或这组列的值必须存在于主表的某个列或一组列中。这样可以确保数据的一致性和完整性。
例如,假设我们有两个表:orders(订单表)和order_details(订单详情表)。orders表有一个主键order_id,而order_details表有一个外键order_id,它引用orders表的order_id。在这种情况下,orders表是主表,order_details表是子表。
create table order_details (
detail_id int primary key ,
order_id int ,
product_id int ,
quantity int ,
foreign key (order_id) references orders(order_id)
);
在这个例子中,order_details表的order_id列是一个外键,它引用orders表的order_id列。这样,每个订单详情记录都与一个订单记录相关联。