Как заставить функцию JOIN в SQL работать в соответствии с моими домашними требованиями? - PullRequest
0 голосов
/ 02 июля 2019

Описание:

Пожалуйста, измените следующие две команды SQL для решения следующей задачи:

Настройка отношения между таблицами ORDERS и CUSTOMERS, где поле ID из таблиц CUSTOMERS должно быть первичным ключом, а поле ID_CUSTOMER из таблицы ORDERS должно быть полем внешнего ключа. После удаления клиента все его заказы также должны быть удалены.

Моя работа:

CREATE TABLE CUSTOMERS (id int primary key, firstname varchar(30), 
    lastname varchar(30), ADDRESS VARCHAR(100));

CREATE TABLE ORDERS (ID INT primary key, 
   PRODUCT_NAME VARCHAR(30), 
   PRODUCT_PRICE FLOAT,
   DATE_ORDER DATE,
   ID_CUSTOMER INT,
   AMOUNT INT);

ALTER TABLE ORDERS
ADD FOREIGN KEY (ID_CUSTOMER)
REFERENCES ORDERS (ID)
;

Ожидаемый результат (по системе домашних заданий):

CUSTOMERS|1
ORDERS|2
DELETE ONE RECORD IN CUSTOMERS
CUSTOMERS|0
ORDERS|0

Почему так? И что я должен сделать, чтобы удалить клиента?

После удаления клиента все его заказы также должны быть удалены.

1 Ответ

0 голосов
/ 02 июля 2019

внешний ключ с ON DELETE CASCADE приведет к удалению записи при удалении записи, на которую он ссылается.

ALTER TABLE ORDERS
ADD FOREIGN KEY (ID_CUSTOMER)
REFERENCES ORDERS (ID)
ON DELETE CASCADE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...