Avatar billede _et Praktikant
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
Avatar billede _et Praktikant
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;
Avatar billede arne_v Ekspert
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.
Avatar billede Slettet bruger
06. marts 2012 - 22:06 #3
Kan du måske bruge MySQL's REPLACE syntax til noget?
Avatar billede _et Praktikant
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
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester