[mySQL] Newbie : Utilisation de CASE
Bonjour,
habitué au language transacSQL de MS, je me trouve un peu depourvu devant la 'faiblesse' (???) de mySQL sur ce point.
J'aimerais faire ceci :
Dans une table IDS contenant 2 champs : 'Nom' et 'DernierIdUtilise', utilisée pour conserver les derniers IDS utilisés (genre compteur auto), je voudrais que la procedure gère le fait que le record n'existe pas (dans ce cas je le crèe) et aussi si le champ 'DernierIdUtilise' est null (dans ce cas je l'initialise à 1.
Voila le code que j'ai pondu, mais j'obtiens des erreurs.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
START TRANSACTION;
SET @A := -1;
SELECT @A := IF(DernierIdUtilise IS NULL ,0 ,DernierIdUtilise) FROM Ids WHERE Nom = 'Managers';
CASE @A
WHEN -1 THEN
INSERT INTO `ids` ( `Nom` , `DernierIdUtilise` ) VALUES ('Managers', '1');
ELSE
UPDATE `ids` SET DernierIdUtilise = @A+1 WHERE Nom = 'Managers';
END CASE
COMMIT; |
Si qqun peux me dire où j'ai tout faux.
Merci encore.