Удалить записи из 4-х связанных таблиц sql
Я создал 4 связанные таблицы в SQL:
CREATE DATABASE orderDB2;
create table orderdb2.Users
(
UserId int primary key,
FirstName varchar(64) not null,
LastName varchar(64) not null
);
CREATE TABLE orderdb2.Orders(
OrderID int NOT NULL,
OrderNumber int NOT NULL,
UserID int,
created_at timestamp,
FOREIGN KEY (UserID) REFERENCES orderdb2.Users(UserID)
);
CREATE TABLE orderdb2.User_carts (
User_cartsId int NOT NULL,
name varchar(128) not null,
UserId int,
FOREIGN KEY(UserId) REFERENCES orderdb2.users(UserId));
CREATE TABLE orderdb2.order_items (
order_itemsId int NOT NULL,
name varchar(128) not null,
UserId int,
FOREIGN KEY(UserID) REFERENCES orderdb2.Users(UserID));
К примеру, я хочу удалить первого пользователя и все связанные с ним записи в других таблицах одним запросом:
DELETE FROM users WHERE userId = 1;
Буду рад любой помощи)
Ответы (1 шт):
Автор решения: newman
→ Ссылка
По идее у вас уже почти все сделано. Только надо в объявление FOREIGN KEY добавить ON DELETE CASCADE.
В этом случае если удалите запись из основной таблицы, то SQL сервер сам удалит все записи из связанных таблиц.