Likes Likes:  0
Resultaten 1 tot 3 van de 3
Geen
  1. #1
    bjorri
    update met dubbele primairykey
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    update met dubbele primairykey

    Goede morgen,

    PHP redelijk nieuwe versie, MySQL versie 5.0 of 5.1.

    Voor een vereniging bouw ik een aanmeldsysteem met daarin een
    koppeltabel om te zien wie er mee gaat met welke toer, twee kolommen die
    samen primary key zijn, dat kwam ik ergens tegen en het lijkt me ook de
    meest logische oplossing.

    INSERT werkt, DELETE ook. Echter:

    INSERT INTO `koppelmenstoer`
    VALUES( '$idtoer','$idmens')

    Werkt weliswaar prima maar geeft een foutmelding als de key al bestaat,
    Een dubbele aanmelding zal best wel eens voorkomen en moet liever geen
    foutmelding opleveren.

    UPDATE `koppelmenstoer`
    VALUES( '$idtoer','$idmens')
    WHERE `idtoer`='$idtoer'
    AND `idmens`='$idmens'

    Geeft geen foutmelding maar ook niet het gewenste resultaat.

    Nog wat zitten stoeien met:

    INSERT INTO `koppelmenstoer`
    VALUES( '$idtoer','$idmens')
    ON DUPLICATE KEY UPDATE
    diverse probeersels

    Maar ook daarmee krijg *ik* of een foutmelding of niet het gewenste
    resultaat. Toch denk ik dat ik het in deze richting moet zoeken.

    Hoe los ik dit elegant op?

    bjorri.

  2. #2
    bjorri
    update met dubbele primairykey
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: update met dubbele primairykey

    bjorri wrote:
    >
    > INSERT INTO `koppelmenstoer`
    > VALUES( '$idtoer','$idmens')
    >
    > Werkt weliswaar prima maar geeft een foutmelding als de key al bestaat,


    Het toverwoord blijkt REPLACE te zijn.

  3. #3
    Rik Wasmus
    update met dubbele primairykey
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: update met dubbele primairykey

    On Tue, 20 May 2008 13:54:44 +0200, bjorri <geen@nl.invalid> wrote:

    > bjorri wrote:
    >> INSERT INTO `koppelmenstoer`
    >> VALUES( '$idtoer','$idmens')
    >> Werkt weliswaar prima maar geeft een foutmelding als de key al bestaat,

    >
    > Het toverwoord blijkt REPLACE te zijn.


    Wat nare gevolgen kan hebben als je foreign key cascades hebt, aangezien
    er daadwerkelijk een record verwijderd wordt en daarna toegevoegd. Heb je
    die niet, werkt het natuurlijk prima.

    Mijn voorkeur gaat onder MySQL uit naar:
    INSERT INTO ...ON DUPLICATE UPDATE ... syntax (welke problemen heb je het
    over?)

    Maar... in jouw geval lijkt een INSERT IGNORE INTO.... ook een prima
    oplossing.
    --
    Rik Wasmus
    ....spamrun finished



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2021 Webhostingtalk.nl.
Web Statistics