Hirdetés

Új hozzászólás Aktív témák

  • Jim-Y

    veterán

    válasz martonx #1462 üzenetére

    Tárolt eljárás végén insertálok, a gond az, hogy többször is bekerült ugyanaz a sor a táblába, és ez összezavarja egy másik eszköz működését. Most ezzel próbálkozom de hibát dob.

    Felveszek egy flaget, kezdetben beállítom nullára, majd lekérdezem, hogy a beszúrni kívánt táblában van-e már ilyen sor, ha van, akkor flag 1 lesz, és ez alapján insert, vagy sem.

    Így néz ki kód szintjén:

    DECLARE flag INT;
    SET flag = 0;
    ...
    ...
    SELECT 1 FROM tabla WHERE datum = multhet INTO flag;
    CASE flag
    WHEN 0 THEN (INSERT INTO tabla (datum, ertek) VALUES (multhet,myertek));
    ELSE (SELECT 'row already in table');
    END CASE;

    Sajnos erre ezt a hibát dobja:
    Script line: 4 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO tabla (datum, ertek) VALUES (multhet,myertek));
    ' at line 120

    Szerintem így case-en belülre nem lehet insertet rakni, mert sima selectet sikerült.

    fordfairlane: a tábla ahova beszúrok egy 3 oszlopos tábla, id, datum, ertek
    az id auto increment, és ez a kulcs.
    Én tényleg csak azt szeretném elérni, hogy pl van egy ilyen sorom a táblában:

    22 2013-37 99.9999

    akkor ne tudjak egy olyan sort beszúrni, ahol datum = 2013-37 :)

Új hozzászólás Aktív témák