Eğer InnoDB kullanıyorsanız, size Foreign Key Constraints Eğer yabancı anahtar ilişkileri kurarken ON DELETE CASCADE
seçeneğini kullanarak sizin için bu özen içine bakmak gerekir.
Docs bir örnek:
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE) ENGINE=INNODB;
Bunun üzerine yerde, böyle bir üst ve bir alt satır eşleşen eklemek yapmak için sanki:
INSERT INTO parent (id) VALUES (1);
INSERT INTO child (id, parent_id) VALUES (1,1);
Ve sonra bu gibi ebeveyn kaldırıldı:
DELETE FROM parent WHERE id = 1;
Sen eşleşen alt kayıt gitmiş bulacaksınız. Bu, benim görüşüme göre, bunu yapmak için en iyi yoldur.
EDIT: 1 tablo içinde Bunu yapmak için, böyle bir şey yapardı:
CREATE TABLE parent (
id INT NOT NULL,
name varchar(250) not null,
parent_id INT NULL,
FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE,
PRIMARY KEY (id)
) ENGINE=INNODB
Sonra iki satır, diğer başvuran birini eklerseniz:
INSERT INTO parent (id,name,parent_id)
VALUES ('1', 'Test 1', NULL), ('2', 'Test 2', '1')
Sonra iki ana satırı silin:
DELETE FROM parent WHERE id = 1;
Bunu parent_id
1 ile alt satır siler bulacaksınız.