CREATE TABLE IF NOT EXISTS `mecze` ( `druzyna1_id` int(10) UNSIGNED NOT NULL DEFAULT '0', `druzyna2_id` int(10) UNSIGNED NOT NULL DEFAULT '0', `data` datetime DEFAULT NULL, PRIMARY KEY (`druzyna1_id`,`druzyna2_id`), UNIQUE KEY `data` (`data`), KEY `druzyna1_id` (`druzyna1_id`), KEY `druzyna2_id` (`druzyna2_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; CREATE TABLE IF NOT EXISTS `druzyny` ( `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_polish_ci NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci; ALTER TABLE `mecze` ADD CONSTRAINT `mecze_ibfk_3` FOREIGN KEY (`druzyna1_id`) REFERENCES `druzyny` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `mecze_ibfk_4` FOREIGN KEY (`druzyna2_id`) REFERENCES `druzyny` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Zrobiłem sobie taką tabelę i ona działa doskonale usuwam drużynę z tabeli druzyny, automatycznie usuwaja sie mecze w których drużyny brały udział i jest ok, ale mi potrzeba aby w tabeli mecze wartość druzyna1_id i druzyna2_id przybierały wartość 0 lub null jak biorę zamiast ON DELETE CASCADE ON DELETE SET NULL to dostaje Błąd podczas tworzenia klucza zewnętrznego na druzyna1_id (należy sprawdzić typy danych) Błąd podczas tworzenia klucza zewnętrznego na druzyna2_id (należy sprawdzić typy danych), w czym tkwi problem