CREATE TABLE grandparent ( id INT NOT NULL PRIMARY KEY ) ENGINE=InnoDB; CREATE TABLE parent ( id INT NOT NULL PRIMARY KEY, grandparent_id INT, FOREIGN KEY (grandparent_id) REFERENCES grandparent(id) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE child ( id INT NOT NULL PRIMARY KEY, parent_id INT, FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE ) ENGINE=InnoDB; INSERT INTO grandparent VALUES (1),(2); INSERT INTO parent VALUES (1,1), (2,2); INSERT INTO child VALUES (1,1), (2,2); connection node_2; DELETE FROM grandparent WHERE id = 1; connection node_1; SELECT COUNT(*) = 0 FROM parent WHERE grandparent_id = 1; COUNT(*) = 0 1 SELECT COUNT(*) = 0 FROM child WHERE parent_id = 1; COUNT(*) = 0 1 DROP TABLE child; DROP TABLE parent; DROP TABLE grandparent;