Delete & inner join?

Databaser & SQL

3 svar · 217 visningar · startad av Fraja^

Medlem sedan juni 200117 inlägg
Trådstart#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.

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)