1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| CREATE PROCEDURE rangUp(aId INT, nomTable varchar(50), ColPri varchar(50), ColFor varchar(50) )
BEGIN
set @id = aId;
set @sqlCMD = CONCAT('select rang, ', ColFor, ' into ?, ? FROM ', nomTable, ' WHERE ', ColFor, '=?');
PREPARE stmt FROM @sqlCMD;
EXECUTE stmt USING @rg, @categ, @id;
if(@rg > 0) then
set @sqlCMD = CONCAT('UPDATE ', nomTable, ' SET rang = rang +1 WHERE rang = ?+1 and ', ColFor, ' = ?');
PREPARE stmt FROM @sqlCMD;
EXECUTE stmt USING @rg, @categ;
set @sqlCMD = CONCAT('UPDATE ',nomTable, ' SET rang = rang -1 WHERE ', ColPri, ' = ?');
PREPARE stmt FROM @sqlCMD;
EXECUTE stmt USING @id;
DEALLOCATE PREPARE stmt ;
END IF;
END |
Partager