查询同时删除主键和外键

时间:2019-02-02 23:05:53

标签: mysql sql phpquery

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

发票表:

var end

invoice_infos:

invoice_id
customer_name
order_date

现在我要查询一个查询,该查询在两个表中同时删除具有相同invoice_no的行

2 个答案:

答案 0 :(得分:1)

如果两个表相关,并且您打算每当从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上的相关值也将被删除

答案 1 :(得分:0)

您正在寻找Multiple-Table DELETE Syntax

DELETE invoice, invoice_infos
FROM invoice
INNER JOIN invoice_infos ON invoice.invoice_id = invoice_infos.invoice_id
WHERE invoice.invoice_id = ?;

您可以将?替换为要删除的发票的ID。