首页 > 解决方案 > 查询同时删除主键和外键

问题描述

大家好,我有两张表是这种结构

发票表:

invoice_id
customer_name
order_date

发票信息:

id
invoice_id
production_name
product_prix
qtt

现在我想做一个查询,同时删除两个表中相同的 invoice_no 行

标签: mysqlsqlphpquery

解决方案


如果两个表是相关的,并且您正在考虑在从表中删除记录invoice_infos时从表中删除记录,则invoice需要FOREIGN KEYCASCADE DELETE

alter table invoice_infos
add constraint invoice_fkey
foreign key (invoice_id)
references invoice(invoice_id)
on delete cascade;

之后每当你发出

DELETE FROM invoice WHERE invoice_id = 5;

invoice_infos 上的相关值也将被删除


推荐阅读