-
Использование параметра CASCADE в ограничениях FOREIGN KEY:
CREATE TABLE Orders ( OrderID INT PRIMARY KEY, CustomerID INT, OrderDate DATE, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ON DELETE CASCADE );В этом примере, когда клиент удаляется из таблицы «Клиенты», все соответствующие заказы в таблице «Заказы» с соответствующим идентификатором CustomerID будут автоматически удалены.
-
Использование триггеров:
CREATE TRIGGER cascade_delete BEFORE DELETE ON Customers FOR EACH ROW BEGIN DELETE FROM Orders WHERE CustomerID = OLD.CustomerID; END;При использовании этого триггера, когда клиент удаляется из таблицы «Клиенты», триггер автоматически удаляет все соответствующие заказы из таблицы «Заказы».
-
Использование хранимых процедур:
CREATE PROCEDURE DeleteCustomer(IN customerID INT) BEGIN DELETE FROM Customers WHERE CustomerID = customerID; DELETE FROM Orders WHERE CustomerID = customerID; END;Вызов хранимой процедуры «DeleteCustomer» с определенным идентификатором клиента приведет к удалению соответствующего клиента и всех связанных с ним заказов.
-
Использование логики приложения:
DELETE FROM Customers WHERE CustomerID = 1; DELETE FROM Orders WHERE CustomerID = 1;В этом методе вы можете вручную удалить клиента и связанные с ним заказы, используя отдельные операторы SQL в коде вашего приложения.