webForumDet fria alternativet

delete alla relationer

Databaser & SQLur Databashanterare & SQL

4 svar · 213 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Frågan#1
DELETE FROM kategorier,produkter,priser WHERE kategorier.ID=produkter.kategoriID AND produkter.ID=priser.produktID AND kategorier.ID=1000

Varför funkar inte denna? :( , använder MSDE

felmedellande:
Felaktig syntax nära ','.

Medlem sedan dec. 200012 464 inlägg
#2

Du kan bara göra delete från en tabell i taget. Lös det med foreign key och on delete cascade istället.

Medlem sedan nov. 2003569 inlägg
#3

uuuh, jag tror inte jag kan tillämpa det, eftersom det är inte i alla scenarion alla relationer ska deletas, ibland ska det bara vara de 2 sista som ska raderas. hur gör man då? :x

Medlem sedan nov. 2003569 inlägg
#4

Men kan man inte använda nån mysig SELECT sats inne i DELETE?.

DELETE FROM produkt WHERE produkt.ID=(SELECT ID FROM kategori) eller nåt?,, måste jag verkligen använda triggers?.

Medlem sedan dec. 200012 464 inlägg
#5

Någon trigger skall inte behövas.

Det går att göra så som du skrev i delete, men det är vanligare att man gör något i stil med

DELETE FROM produkt 
WHERE produkt.ID in (SELECT produktID FROM kategori where kategori = 'OGRISH')

Skillnaden mellan att använda = och in vid subselect är att det i det förra fallet blir fel om subselecten returnerar mer än en post.

128 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)