Каскадный запрос на удаление - PullRequest
5 голосов
/ 27 августа 2010

У меня есть три таблицы.Product, Company, Employee

ProductId таблицы Product - это первичный ключ для Company, а CompanyId of Company - таблица foregin для Employee

Таким образом, при удалении ProductId из таблицы Product все связанные записи в другихтаблицы должны удалить.Но я не могу коснуться схемы (не могу использовать таблицу изменений).Как мне написать запрос в этом случае ..

Ответы [ 2 ]

9 голосов
/ 27 августа 2010

Если вы не можете добавить ограничения, которые распространяют удаление, вы должны написать все необходимые удаления самостоятельно:

delete employee where companyid in (select companyid from company c where productid = xxx);
delete company where productid=xxx;
delete product where productid=xxx;
0 голосов
/ 27 августа 2010

Попробуйте эту опцию. У меня нет среды, чтобы проверить это. Я думаю, с некоторыми изменениями это должно сработать на вашем конце.

DELETE Product,Company,Employee 
FROM 
user LEFT JOIN items ON product.productid = company.productid 
LEFT JOIN orders ON company.productid = product.productid 
WHERE product.productid = [$productid]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...