mam dwie tabele
CREATE TABLE IF NOT EXISTS `tbl_lokalizacja` ( `id_lokalizacja` int(11) NOT NULL AUTO_INCREMENT, `miejsce` varchar(255) NOT NULL, `aktywny` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id_lokalizacja`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;)
CREATE TABLE IF NOT EXISTS `tbl_termin` ( `id_termin` int(11) NOT NULL AUTO_INCREMENT, `data_od` date NOT NULL, `data_do` date NOT NULL, `godzina` time NOT NULL, `iloscmiejsc` int(11) NOT NULL, `aktywny` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id_termin`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; )
oraz tabele łączącą
CREATE TABLE IF NOT EXISTS `tbl_termin_lokalizacja` ( `tbl_termin_id_termin` int(11) NOT NULL, `tbl_lokalizacja_id_lokalizacja` int(11) NOT NULL, PRIMARY KEY (`tbl_termin_id_termin`,`tbl_lokalizacja_id_lokalizacja`), KEY `fk_tbl_termin_lokalizacja_tbl_lokalizacja1` (`tbl_lokalizacja_id_lokalizacja`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) ALTER TABLE `tbl_termin_lokalizacja` ADD CONSTRAINT `fk_tbl_termin_lokalizacja_tbl_termin1` FOREIGN KEY (`tbl_termin_id_termin`) REFERENCES `tbl_termin` (`id_termin`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `fk_tbl_termin_lokalizacja_tbl_lokalizacja1` FOREIGN KEY (`tbl_lokalizacja_id_lokalizacja`) REFERENCES `tbl_lokalizacja` (`id_lokalizacja`) ON DELETE CASCADE ON UPDATE CASCADE;
Przy edycji wpisów z tabeli termin wykrywa i wyświetla mi lokalizacje, problem jednak powstaje, gdy zaznaczę którąkolwiek i wybiorę albo save albo update.
CDbCommand failed TO execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot ADD OR UPDATE a child row: a FOREIGN KEY constraint fails (`tbl_termin_lokalizacja`, CONSTRAINT `fk_tbl_termin_lokalizacja_tbl_termin1` FOREIGN KEY (`tbl_termin_id_termin`) REFERENCES `tbl_termin` (`id_termin`) ON DELETE CASCADE ON UPDATE). The SQL statement executed was: INSERT INTO `tbl_termin_lokalizacja` (`tbl_lokalizacja_id_lokalizacja`, `tbl_termin_id_termin`) VALUES (:yp0, :yp1)
Generowałem to przy użyciu Gii CRUD'a z Dodatkiem Giix.
Szukam już rozwiązania cały dzień. Może wam się coś na oczy rzuci.
Pozdrawiam
------------------------------------------------------------------------------------
EDITED:
Problem rozwiązany po kliku dniach ale jednak.
Cały szkopuł w mechanizmie składowania.
2 razy ENGINE=MyISAM i raz ENGINE=InnoDB
po ustawieniu wszystkiego na InnoDB wszystko zaczęło chodzić.
Niestety tak to jest jak się chce człowiekowi trochę ułatwić sprawę i korzysta z MySQL Workbencha :/