Mam problem podczas usuwania czegoś z dysku BD.
Problem polega na tym, że nie tylko kasuje obiekt, którego szukałem (używając findOneBy), ale wszystkie obiekty związane z głównym identyfikatorem.
// --- Controller
$new = $this->getDoctrine()->getManager();
$OBJcar = $new->getRepository('SomeOtherBundle:CarEntityClass')
->findOneBy(array('idOwner' => $idowner, 'idCar' => $idcar));
if($OBJcar){
$new->remove($OBJcar);
$new->flush();
$msj="The car for an specific owner has been erased.";
}
// --- Profiler (Query)
"START TRANSACTION"
Parameters: { }
Time: 0.22 ms
DELETE FROM schema.CarTable WHERE id_owner = ?
Parameters: ['123456']
Time: 0.63 ms
"COMMIT"
Parameters: { }
Time: 0.63 ms
Jak usunąć jeden wiersz Dostaję od db?
Wszystko wygląda poprawnie .. Nie używasz przypadkowo "kaskadowego usuwania" lub "kaskadowania wszystkiego" w dowolnych konfiguracjach, prawda? –
Mam złożony klucz podstawowy na stole. Stosunki wyglądać następująco: CREATE TABLE schema.car ( id_car bigint NOT NULL, id_owner bigint NOT NULL, CONSTRAINT car_pkey PRIMARY KEY (id_car, id_owner) CONSTRAINT car_person_fk FOREIGN KEY (id_owner) REFERENCJE schema.persons (id) odpowiadają PROSTY Aktualizacja na żadne działanie USUŃ żadnego działania, CONSTRAINT car_type_fk KLUCZ obcych (id_car) ODNOŚNIKI schema.cartype (id) odpowiadają PROSTY Aktualizacja na CASCADE Przy usuwaniu CASCADE ); –