Witam,
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 :/
Ten post edytował gambler 2.08.2012, 18:09:33