06. marts 2012 - 20:16
Der er
3 kommentarer og 1 løsning
UPDATE hvis ROW eksistere ellers INSERT
Er det muligt at lave en sql sætning der kan opdatere en række hvis en given celle indeholder en bestemt værdi og ellers oprette en. Her er et pseudo eksempel for at illustrerer funktionaliteten: table: id(auto), pid, text, tal INSERT INTO 'table' pid, text, tal VALUES 7, 'txt', 9 ON DUBLICATE pid UPDATE text, tal VALUES 'txt', 9 Kan man evt. lavet trickset, hvis man stryger id så INSERT kan producere identiske rækker Mvh Teddy
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
06. marts 2012 - 20:34
#1
Evt sådan: vil det virke? - med eller uden auto id felt? INSERT INTO TABLE ( pid , text , tal ) VALUES ( 7 , 'txt', 9 ) ON DUPLICATE KEY UPDATE text ='txt' , tal = 9;
06. marts 2012 - 21:10
#2
Hvis du bruger auto increment id boer du aldrig faa en duplikat!?!? Hvis id er eksternt bestemt saa skal den ikke vaere auto increment. Og saa kan du vaelge mellem det du selv foreslaar eller at forsoege en insert og ved fejl, saa lave en update. De sidste lyder boevlet, men det vil faktisk vaere nemmere den dag du faar lyst til at skifte database fra MySQL til noget andet. Hvis id er auto increment, saa skal vi vide hvilken kolonne der saa bestemmer om det er duplikat eller ej.
Slettet bruger
06. marts 2012 - 22:06
#3
Kan du måske bruge MySQL's REPLACE syntax til noget?
22. marts 2012 - 09:00
#4
problemet er løst ved at fjerne auto inc, så kan der altid arbejdes på samme række. Da der aldrig kan opstå dubletter er det i dette tilfælde ikke noget problem. Takker for hjælpen Svar hvis nogen ønsker point
Computerworld tilbyder specialiserede kurser i database-management