2016-05-26 1 views
0

У меня есть 3 таблицы: -h2 базы данных 3 таблицы удалить в одном запросе

customer(customer_id) 
sales(sales_id, customer_id) 
salesdetails(salesdetails_id, sales_id) 

Как удалить клиента, а также 2 других соответствующих данных таблицы в одном запросе?

Я stucked здесь: -

DELETE FROM customer, sales, salesdetails 
USING customer, sales, salesdetails 
WHERE customer.customer_id = sales.customer_id 
AND sales.sales_id = salesdetails.sales_id 
AND customer.customer_id = 'C0001'; 

Примечания: Я использую и новый для h2 базы данных.

ответ

0

При создании таблицы добавьте метод удаления «каскад». Пример:

Заказчик:

CREATE TABLE customer(
    customer_id integer primary key auto_increment 
); 

продаж:

CREATE TABLE sales(
    sales_id integer primary key auto_increment, 
    FOREIGN KEY (customer_id) REFERENCES customer(id) 
     ON DELETE CASCADE 
); 

Таким образом, при удалении клиента, все связанные продажи будут удалены тоже.