usuwanie danych z bazy

0

Cześć,
Realizuję usuwanie danych z bazy. Mam tabelę:

  • 'typ', która składa się z atrybutów 'id_typ' oraz 'typ'
    -'lampa_elektronowa', która składa się z "id_lampy', 'nazwa_lampy' oraz 'id_typ'
    -'pomiar', która poza wartościami mierzonymi oraz 'id_pomiar' zawiera 'id_lampa'

Realizuję usuwanie w dwóch sytuacjach:
-chcę skasować lampę elektronową, co za tym idzie wszystkie pomiary z 'id_lampa' kasowanej lampy
-chcę skasować typ, co za tym idzie wszystkie lampy z 'id_typ' kasowanego typu i dalej wszystkie pomiary z 'id_lampa' kasowanych lamp

Usuwanie lampy udało mi się zrealizować, działa i wygląda tak:
DELETE p.*
FROM ble.pomiar p
INNER JOIN
ble.lampa_elektronowa le
INNER JOIN
ble.typ t ON (t.id_typ = le.id_typ) AND (le.id_lampa = p.id_lampa)
WHERE (t.typ = TYP) AND (le.nazwa_lampy = NAZWA_LAMPY);

		DELETE le.*
        FROM ble.lampa_elektronowa le
				INNER JOIN
			 ble.typ t ON (t.id_typ = le.id_typ)
    WHERE (t.typ = TYP) AND (le.nazwa_lampy = NAZWA_LAMPY);

usuwanie typu napisałem w analogiczny sposób:
DELETE p.*
FROM ble.pomiar p
INNER JOIN
ble.lampa_elektronowa le
INNER JOIN
ble.typ t ON (t.id_typ = le.id_typ) AND (le.id_lampa = p.id_lampa)
WHERE t.typ = TYP;

    DELETE le.*
        FROM ble.lampa_elektronowa le
			INNER JOIN
	     ble.typ t ON (t.id_typ = le.id_typ)
        WHERE t.typ = TYP;
    
    DELETE t.*
        FROM ble.typ t
        WHERE typ = TYP;

wykonałem następujące kroki:
Edit --> Preferences

Click SQL Queries tab and uncheck Safe Updates check box

Query --> Reconnect to Server

z poziomu bazy danych usuwanie typu działa, nie działa jednak wciąż z poziomu aplikacji, dostaję taki błąd "SQLException: Cannot delete or update a parent row: a foreign key constraint fails (ble.lampa_elektronowa, CONSTRAINT id_typ FOREIGN KEY (id_typ) REFERENCES typ (id_typ) ON DELETE NO ACTION ON UPDATE NO ACTION)
SQLState: 23000
VendorError: 1451"

Próbowałem też dodac na początku mojego zapytania SET SQL_SAFE_UPDATES = 0;- nie pomogło

bardzo proszę o pomoc.

0

u mnie usuwanie było możliwe dopiero wtedy, kiedy prócz "on delete cascade" ustawiłem w "Relationships" -> "INSERT AND UPDATE SPECIFICATIONS" -> Delete Rule na "CASCADE" w powiązanych i interesujących nas kluczach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1