Удалить записи из 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 сервер сам удалит все записи из связанных таблиц.

→ Ссылка