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.