Witam,
mam dwie tabele


  1. CREATE TABLE IF NOT EXISTS `tbl_lokalizacja` (
  2. `id_lokalizacja` int(11) NOT NULL AUTO_INCREMENT,
  3. `miejsce` varchar(255) NOT NULL,
  4. `aktywny` tinyint(1) DEFAULT NULL,
  5. PRIMARY KEY (`id_lokalizacja`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;)

  1. CREATE TABLE IF NOT EXISTS `tbl_termin` (
  2. `id_termin` int(11) NOT NULL AUTO_INCREMENT,
  3. `data_od` date NOT NULL,
  4. `data_do` date NOT NULL,
  5. `godzina` time NOT NULL,
  6. `iloscmiejsc` int(11) NOT NULL,
  7. `aktywny` tinyint(1) DEFAULT NULL,
  8. PRIMARY KEY (`id_termin`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8; )


oraz tabele łączącą
  1. CREATE TABLE IF NOT EXISTS `tbl_termin_lokalizacja` (
  2. `tbl_termin_id_termin` int(11) NOT NULL,
  3. `tbl_lokalizacja_id_lokalizacja` int(11) NOT NULL,
  4. PRIMARY KEY (`tbl_termin_id_termin`,`tbl_lokalizacja_id_lokalizacja`),
  5. KEY `fk_tbl_termin_lokalizacja_tbl_lokalizacja1` (`tbl_lokalizacja_id_lokalizacja`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; )
  7. ALTER TABLE `tbl_termin_lokalizacja`
  8. 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,
  9. 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.

  1. 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 :/