Databáza SQL - mazanie

Ak hľadáte nejaký softvér do PC prípadne ak s ním máte nejaký problém.

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Databáza SQL - mazanie

Príspevok od používateľa Radus » 28 Nov 2018, 10:30

Zdravím vospolok, mám relačnú databázu a potreboval by som "elegantne" vymazať súvisiace tabuľky pre hlavnú tabuľku.
Pre vysvetlenie, mám tabuľku Profil, tá obsahuje neviem koľko tabuliek Preferencies (1->many) a tá zase neviem koľko tabuliek Targets (1->many).
Ja potrebujem pre celý profil vymazať všetky Targets. Napísal som si toto (Id je teraz id Profilu):

Kód: Vybrať všetko

DELETE * FROM [Targets] WHERE Targets.PreferencesId = Preferences.Id AND Preferences.ProfilId = Id "
výsledok - ta ne bo nemá všetky argumenty.

Tak som skúsil toto:

Kód: Vybrať všetko

DELETE * FROM [Targets], [Preferences] WHERE Targets.PreferencesId = Preferences.Id AND Preferences.ProfilId = Id "
...ta že ne bo mám označiť tabuľku z ktorej chcem mazať - no to je celkom logické, ale ako ju mám označiť?

Neelegantne to viem urobiť tak, že si dám vyvolať pole všetkých Preferencies pre Profil a podľa Preferences Id mazať všetky Targets. To znamená ďalší príkaz SQL, pole, cyklus...
Nejde to na jeden príkaz?
Ďakujem za pomoc.
R.
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Databáza SQL - mazanie

Príspevok od používateľa dan21 » 28 Nov 2018, 10:45

Co tak urobit ALTER TABLE na vsetky child tabulky a nastavit CASCADE DELETE ?
0

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Databáza SQL - mazanie

Príspevok od používateľa Radus » 28 Nov 2018, 10:52

Vieš mi napísať príklad na zápis?
Ďakujem
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Databáza SQL - mazanie

Príspevok od používateľa dan21 » 28 Nov 2018, 10:57

0

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Databáza SQL - mazanie

Príspevok od používateľa Radus » 28 Nov 2018, 11:00

Vďaka skúsim...
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6200
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Databáza SQL - mazanie

Príspevok od používateľa pocitujlasku » 28 Nov 2018, 12:35

dan21 napísal:Co tak urobit ALTER TABLE na vsetky child tabulky a nastavit CASCADE DELETE ?
A nepotrebuje mat nastavene foreign key, aby to fungovalo?
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Databáza SQL - mazanie

Príspevok od používateľa dan21 » 28 Nov 2018, 12:38

Potrebuje, ale tym ze napisal 1->many som to automaticky predpokladal.
0

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Databáza SQL - mazanie

Príspevok od používateľa Radus » 28 Nov 2018, 13:22

...áno, relácie mám samozrejme vytvorené.
0

Napísať odpoveď