Запрос на удаление первичного и внешнего ключа одновременно - PullRequest
0 голосов
/ 03 февраля 2019

Привет всем, у меня есть две таблицы этой структуры

таблица счетов:

invoice_id
customer_name
order_date

invoice_infos:

id
invoice_id
production_name
product_prix
qtt

Теперь я хочу сделать запрос, который удаляетв это же время строки, которые являются одинаковыми invoice_no в двух таблицах

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

, если две таблицы связаны, и вы планируете удалять записи из таблицы invoice_infos всякий раз, когда запись удаляется из таблицы invoice, вам нужно 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 также будут удаляться

0 голосов
/ 03 февраля 2019

Вы ищете Несколько таблиц DELETE Синтаксис :

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

Вы можете заменить ? идентификатором счета-фактуры, от которого хотите избавитьсяиз.

...