【发布时间】:2019-02-02 23:05:53
【问题描述】:
大家好,我有两张表是这样的结构
发票表:
invoice_id
customer_name
order_date
发票信息:
id
invoice_id
production_name
product_prix
qtt
现在我想做一个查询,同时删除两个表中相同的 invoice_no 行
【问题讨论】:
-
invoice_no 列不存在于两个表中
大家好,我有两张表是这样的结构
发票表:
invoice_id
customer_name
order_date
发票信息:
id
invoice_id
production_name
product_prix
qtt
现在我想做一个查询,同时删除两个表中相同的 invoice_no 行
【问题讨论】:
如果两个表相关,并且您正在考虑从invoice 表中删除记录时从invoice_infos 表中删除记录,则需要FOREIGN KEY 和CASCADE 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 上的相关值也将被删除
【讨论】:
您正在寻找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。
【讨论】: