webForumDet fria alternativet

Insert sedan Update

Databaser & SQLur Databashanterare & SQL

10 svar · 504 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan,

Vill gora som sa att om en email adress finns i databastabellen sa skall en update koras annars sa skall en insert goras och email adressen som skall kollas emot finns i en session?

Medlem sedan juni 200032 967 inlägg
#2

Jag antar att du använder ASP? Exempel:

strSQL = "UPDATE ...."
objConn.execute strSQL, rowsaffected, 128
if rowsaffected = 0 then
     strSQL = "INSERT..."
     objConn.Execute strSQL,,128
end if
Medlem sedan nov. 20017 144 inlägg
#3
strSQL = "UPDATE ...."
objConn.execute strSQL, rowsaffected, 128
if rowsaffected = 0 then
     strSQL = "INSERT..."
     objConn.Execute strSQL,,128
end if
Medlem sedan juni 200032 967 inlägg
#4

Det är riktigt. Tidig morgon. :)

Redigerat.

Mvh

Medlem sedan nov. 2003569 inlägg
#5

Men är det inte ganska känsligt att bara köra en UPDATE hursomhelst om man inte vet om det som ska uppdateras existerar eller inte?.

Är det inte bättre att först kolla om emailen verkligen finns där eller ej. Såhär:

[@dinemail är din emailparameter]

DECLARE @finns int

SET @finns=(SELECT TOP 1 ID FROM adresser WHERE email=@dinemail)

IF(@finns>0)
BEGIN
UPDATE adresser SET email=@dinemail
END
ELSE
BEGIN
INSERT INTO adresser (email) VALUES (@dinemail)
END

Medlem sedan dec. 200012 464 inlägg
#6

Men är det inte ganska känsligt att bara köra en UPDATE hursomhelst om man inte vet om det som ska uppdateras existerar eller inte?.

Nej.

Medlem sedan nov. 2003569 inlägg
#7

Nej.

Hade gärna velat ha en mer detaljerad beskrivning.

Medlem sedan nov. 20017 144 inlägg
#8

Nöff skrev:

Hade gärna velat ha en mer detaljerad beskrivning

Men är det inte så att updaten bara görs om det finns någon post.

Medlem sedan nov. 2003569 inlägg
#9

Jo det är sant, men jag är alltid lite nojjig vad det gäller UPDATE, det är lätt att man slinter och råkar glömma ett ID och så uppdateras hela tabellen, och då är det ju tack och godnatt :bire

Medlem sedan juni 200032 967 inlägg
#10

Jo det är sant, men jag är alltid lite nojjig vad det gäller UPDATE, det är lätt att man slinter och råkar glömma ett ID och så uppdateras hela tabellen

Bara för att du glömmer ett ID uppdateras inte hela tabellen. Om du utelämnar WHERE-satsen, ja.

Men din rädsla för UPDATE har väl inget specifikt med denna fråga att göra? Det är precis lika farligt att glömma villkor i UPDATE-frågan om den post man egentligen ville uppdatera finns eller inte.

- - - - - -

Ett annat alternativ är att inte tillåta duplikater på mailadresser i tabellen, och börja med en INSERT. Får man ett fel tillbaka, då fanns posten redan, kör en UPDATE.

Medlem sedan nov. 2003569 inlägg
#11

Men din rädsla för UPDATE har väl inget specifikt med denna fråga att göra? Det är precis lika farligt att glömma villkor i UPDATE-frågan om den post man egentligen ville uppdatera finns eller inte. Ett annat alternativ är att inte tillåta duplikater på mailadresser i tabellen, och börja med en INSERT. Får man ett fel tillbaka, då fanns posten redan, kör en UPDATE.

Det där känns litegrann som "skjut först, fråga sen"

Men jag är överens om att jag inte är överens med er. Vi lämnar det.

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