【问题标题】:Query to delete primary & foreign key in same time查询同时删除主键和外键
【发布时间】:2019-02-02 23:05:53
【问题描述】:

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

发票表:

invoice_id
customer_name
order_date

发票信息:

id
invoice_id
production_name
product_prix
qtt

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

【问题讨论】:

标签: mysql sql phpquery


【解决方案1】:

如果两个表相关,并且您正在考虑从invoice 表中删除记录时从invoice_infos 表中删除记录,则需要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 上的相关值也将被删除

【讨论】:

    【解决方案2】:

    您正在寻找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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多