webForumDet fria alternativet
Logga in / Bli medlem

Uppdatering av tabel

Databaser & SQL

3 svar · 174 visningar · startad av GunnarD

Medlem sedan juni 20014 290 inlägg
Trådstart#1

Säg att jag har följande tabel:

CREATE TABLE wh_alla (
namn VARCHAR(255) PRIMARY KEY,
urlidg VARCHAR(255),
urldm VARCHAR(255));

Nu har jag en post som jag vill lägga in (ex. namn=foobar urldm=foobar)

Om namn redan finns i databasen så skall den uppdateras annars skall den läggas till, vid uppdateringsfallet så skall värdet på den andra kolumnen (urlidg) bibehålas.

Kan man göra detta med ett (1) SQL uttryck, eller måste jag först kontrollera om det redan finns och sedan antingen köra insert eller update?

Medlem sedan mars 20032 667 inlägg
#2
REPLACE INTO wh_alla (namn, urlidg, urldm) VALUES('value1', 'value2', 'value3')

Förutsätter att tex namn är unikt.

Medlem sedan juni 20014 290 inlägg
#3

Men då måste jag ha alla 3 värdena.
För varje fråga har jag namn och (urlidg eller urldm)

REPLACE gör, om jag förstått det rätt, först en DELETE på raden och sedan en INSERT och då försvinner värdet i den kolumnen jag inte har när jag uppdaterar.

Medlem sedan mars 20032 667 inlägg
#4

Då lär det bli svårare att göra med en fråga. Jag skulle tro att du får kolla om värdet finns med en fråga och sedan göra en UPDATE eller en INSERT beroende på resultat. :)

383 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
124 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)