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.
Si qqun peux me dire où j'ai tout faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Merci encore.
Partager