Introduction
CASCADE delete preview helps you see which rows will be removed automatically when you delete a row that has related data in other tables.
SELECT * FROM child_table WHERE foreign_key_column IN (SELECT primary_key_column FROM parent_table WHERE condition);
SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE id = 5);
SELECT * FROM comments WHERE post_id IN (SELECT id FROM posts WHERE id = 10);
CREATE TABLE customers (id INT PRIMARY KEY, name VARCHAR(50)); CREATE TABLE orders (id INT PRIMARY KEY, customer_id INT, product VARCHAR(50), FOREIGN KEY (customer_id) REFERENCES customers(id) ON DELETE CASCADE); INSERT INTO customers VALUES (1, 'Alice'), (2, 'Bob'); INSERT INTO orders VALUES (101, 1, 'Book'), (102, 1, 'Pen'), (103, 2, 'Notebook'); -- Preview orders that will be deleted if customer with id=1 is deleted SELECT * FROM orders WHERE customer_id IN (SELECT id FROM customers WHERE id = 1);
CASCADE DELETE do in a database?orders table with customer_id = 5?departments and employees with employees.department_id referencing departments.id with CASCADE DELETE, what rows will this query return?SELECT * FROM employees WHERE department_id IN (SELECT id FROM departments WHERE name = 'Sales');
SELECT * FROM order_items WHERE order_id = (SELECT id FROM orders WHERE customer_id = 10);
country = 'USA'. The schema has customers and orders (orders.customer_id references customers.id with CASCADE). Which query correctly previews all orders to be deleted?Pass the test and this pattern moves unknown