Co zrobic przy tworzeniu bazy tak aby po usunieciu danego elementu usowalo sie wszystko co z nim zwiazane?
przyklad:
baza: firmy
tabele: firmy, kategorie, powiazania
kasuje dana firme a ona znika z powiazan.
jak to zrobic?
CREATE TABLE powiazanie ( id_powiazania int (50) PRIMARY KEY NOT NULL AUTO_INCREMENT, id_firmy int (50) FOREIGN KEY REFERENCES firmy(id_firmy) ON DELETE CASCADE, id_kategori int (50) FOREIGN KEY REFERENCES kategorie(id_kategori) ON DELETE CASCADE )
- pokaże Ci polecenie sql, które utworzyło tabelę
SHOW CREATE TABLE X
ALTER TABLE X DROP FOREIGN KEY <foreign KEY name>
ALTER TABLE X ADD FOREIGN KEY(POLE_KLUCZA) REFERENCES REFERENCJA(POLE_REFERENCJI) ON DELETE cascade
CREATE TABLE powiazanie ( id_powiazania int (50) PRIMARY KEY NOT NULL AUTO_INCREMENT, id_firmy int(50) NOT NULL, id_kategori int(50) NOT NULL, CONSTRAINT `powiazanie` FOREIGN KEY (`id_firmy`) REFERENCES `firmy` (`id_firmy`) ON DELETE CASCADE, CONSTRAINT `powiazanie` FOREIGN KEY (`id_kategori`) REFERENCES `kategorie` (`id_kategori`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8