Tietojen päivitys MySQL?

Neratetst

Mitenkäs MySQL onnistuu, et päivitetään tietoja mikäli tietokannassa semmoinen on ellei niin lisätään uusi?

Pitääkös tehdä näin.
UPDATE ...... Jos epäonnistui niin sit INSERT ..... Eikö ole helpompaa tapaa?

7

691

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Neratetst

      ---

      • ollenkaan

        Käytät IF EXISTS jolla löydät olemassa olevat ja sitten UPDATE. Jos ei löydy niin sitten INSERT.

        Ei muuten ole mitenkään MySQL-kohtainen vaan sama juttu kaikilla SQL-kannoilla.


      • Neratetst
        ollenkaan kirjoitti:

        Käytät IF EXISTS jolla löydät olemassa olevat ja sitten UPDATE. Jos ei löydy niin sitten INSERT.

        Ei muuten ole mitenkään MySQL-kohtainen vaan sama juttu kaikilla SQL-kannoilla.

        Kerroppas miten?

        Yritin Googlettaa, mut löyty vain taulukoiden poistoa jotka ei sovi tähän tarkoitukseen.

        Löysin INSERT INTO wordcount (word,count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count 1;


      • Neratetst
        Neratetst kirjoitti:

        Kerroppas miten?

        Yritin Googlettaa, mut löyty vain taulukoiden poistoa jotka ei sovi tähän tarkoitukseen.

        Löysin INSERT INTO wordcount (word,count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count 1;

        http://mysql.com/doc/refman/5.0/en/insert-on-duplicate.html tuon siis löysin.


      • ollenkaan
        Neratetst kirjoitti:

        Kerroppas miten?

        Yritin Googlettaa, mut löyty vain taulukoiden poistoa jotka ei sovi tähän tarkoitukseen.

        Löysin INSERT INTO wordcount (word,count) VALUES ('a_word',1) ON DUPLICATE KEY UPDATE count=count 1;

        >Kerroppas miten?

        Jos oletetaan että olet päivittämässä varaosataulua niin syntaksi menee jotenkin noin:

        if EXISTS (SELECT 1 FROM varaosat WHERE osa_ID=@haku)
        UPDATE varaosat ... WHERE osa_ID = @haku
        else
        INSERT varaosat...


      • Neratetst
        ollenkaan kirjoitti:

        >Kerroppas miten?

        Jos oletetaan että olet päivittämässä varaosataulua niin syntaksi menee jotenkin noin:

        if EXISTS (SELECT 1 FROM varaosat WHERE osa_ID=@haku)
        UPDATE varaosat ... WHERE osa_ID = @haku
        else
        INSERT varaosat...

        Ensiksi kiitoksia todella paljon testaan tuota illemmal.

        Itselläni on käytössä MySQL 5 joten alikyselyt ei ole ongelma, mutta MySQL 4 ne eivät toimi. Ilmeisesti tuo ei ole alikysely ja toimii MySQL 4?

        Kumpaa tapaa suosittelet tätä vai tuota minun löytämääni? Ja miksi.


      • PIProd
        Neratetst kirjoitti:

        Ensiksi kiitoksia todella paljon testaan tuota illemmal.

        Itselläni on käytössä MySQL 5 joten alikyselyt ei ole ongelma, mutta MySQL 4 ne eivät toimi. Ilmeisesti tuo ei ole alikysely ja toimii MySQL 4?

        Kumpaa tapaa suosittelet tätä vai tuota minun löytämääni? Ja miksi.

        Itse olen käyttänyt ohjelmissani yksinkertaisissa kannoissa updaten sijaan käytäntöä delete -> insert.

        Tämähän tekee periaatteessa päivityksen, delete suoritetaan jos primary key on tiedossa. Näin ollen ei tarvitse tehdä update lle omaa toiminnallisuutta ollenkaan.

        Ongelmia tulee tietenkin jos on ko tauluun on paljon relaatioita pääavaimen kautta (jopa hajoavia / tuhoavia sellaisia), tai insert on hankalampi kuin update. Mutta jos insert on yksinkertainen ja relaatioita ei ole tai ne voidaan helposti korjata tämä on yksi tapa.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta

      https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi
      Kotka
      85
      2277
    2. Olen tosi outo....

      Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap
      Ikävä
      17
      2244
    3. Vanhalle ukon rähjälle

      Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen
      Ikävä
      11
      1658
    4. Oletko sä luovuttanut

      Mun suhteeni
      Ikävä
      104
      1458
    5. Maisa on SALAKUVATTU huumepoliisinsa kanssa!

      https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663
      Kotimaiset julkkisjuorut
      92
      1396
    6. Hommaatko kinkkua jouluksi?

      Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k
      Sinkut
      155
      1239
    7. Aatteleppa ite!

      Jos ei oltaisikaan nyt NATOssa, olisimme puolueettomana sivustakatsojia ja elelisimme tyytyväisenä rauhassa maassamme.
      Maailman menoa
      256
      1037
    8. Mitä sanoisit

      Ihastukselle, jos näkisitte?
      Tunteet
      63
      943
    9. Onko se ikä

      Alkanut haitata?
      Ikävä
      78
      909
    10. Omalääkäri hallituksen utopia?

      Suurissa kaupungeissa ja etelässä moinen onnistunee. Suuressa osassa Suomea on taas paljon keikkalääkäreitä. Mitenkäs ha
      Maailman menoa
      174
      893
    Aihe