Mam następujący problem przy konstruowaniu procedury..
Wygląda ona na razie tak:
DELIMITER //
CREATE PROCEDURE addWynik_addOplata(
idZ CHAR(10), idKPZ CHAR(10), Wyn CHAR(10), ammo INT(10), jestWyn INT(1))
BEGIN
DECLARE oplata INT(10);
START TRANSACTION;
INSERT INTO wyniki_2012(idZawodnik, idKonPerZaw, wynik) VALUES (idZ, idKPZ, Wyn);
IF (jestWyn > 0) THEN
IF (ammo > 0) THEN
UPDATE oplatyzawody2012 SET amunicja = .... WHERE idZawodnik = idZ AND idKonPerZaw = idKPZ;
END IF;
ELSE
INSERT INTO oplatyzawody2012 (idZawodnik, idKonPerZaw, amunicja, udzial, oplata) VALUES(idZ, idKPZ, ammo, 1, oplata);
END IF;
COMMIT;
END//
DELIMITER ;
W skrócie procedura ma działać tak:
-jesli jestWyn = 1 to ma wykonać pierwszy INSERT oraz UPDATE (bez kolejnego inserta)
-jesli jestWyn = 0 to ma wyknać pierwszy INSERT oraz drugi INSERT (bez update'u)
Z czym mam problem?
Przy UPDATE'cie chciałbym wcześniej sprawdzić czy przekazywany do procedury parametr ammo jest większy od 0 (w zasadzie czy jest równy 1), jeśli tak to ma inkrementować poprzednią wartość znajdującą się w kolumnie amunicja i wykonać update (zastanawiam się jak wcześniej mam wySELECTować tą wartość..)
I jeszcze proszę o zwrócenie uwagi, czy dobrze zrobiłem tego zagnieżdżonego IF'a..