webForumDet fria alternativet
Logga in / Bli medlem

Delete & inner join?

Databaser & SQL

3 svar · 195 visningar · startad av Fraja^

Medlem sedan juni 200117 inlägg
Frågan#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 =)

Medlem sedan dec. 200012 464 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
Medlem sedan juni 200117 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.

Medlem sedan dec. 200012 464 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.

273 ms totalt · 4 externa anrop · v20260731065814-full.05830320
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)