webForumDet fria alternativet

Delete & inner join?

3 svar · 193 visningar · startad av Fraja^

Fraja^Medlem sedan juni 200121 inlägg
#1

Hur tar man bort data i fler tabeller (alltså relaterad data) med samma sql-query?

Typ SELECT * FROM t1 INNER JOIN t2 .... fast med DELETE.

Hoppas nån förstår =)

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Standard sql tillåter bara att du gör delete i en tabell i ett statement.

  1. Gör flera statement
  2. definiera on delete cascade i din foreign key definition

------------------
essentitia preter non sans multiplicandum

Fraja^Medlem sedan juni 200121 inlägg
#3

Punkt 1) är jag med på. Men 2) får du gärna förklara lite mer på om du har lust =)

Glömde säga att det är MS SQL Server 7 jag kör om det gör nån skilland.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jo, det har betydelse då den inte har stöd för on delete cascade så vi kan glömma punkt 2.

Ett annat alternativ är att skriva en trigger som gör delete i den relaterade tabellen. I så fall kan du inte ha foreign keys mellan tabellerna då den kommer att säga ifrån innan riggerkoden exekveras.

------------------
essentitia preter non sans multiplicandum

120 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
117 ms — hämta tråd, inlägg och bilagor (db)