1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| DELIMITER $$
CREATE PROCEDURE `addService`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE id VARCHAR(2);
DECLARE strSet VARCHAR(50);
DECLARE cur CURSOR FOR SELECT idService FROM services ORDER BY idService;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN cur;
REPEAT
FETCH cur INTO id;
IF NOT done THEN
SET strSet = CONCAT_WS(",", strSet,CONCAT("'",id,"'"));
END IF;
UNTIL done END REPEAT;
CLOSE cur;
SET @requete = CONCAT('ALTER TABLE `Test` CHANGE `champSet` `champSet` SET(', strSet, ') NOT NULL');
PREPARE requete_alter FROM @requete;
EXECUTE requete_alter;
DEALLOCATE PREPARE requete_alter;
SELECT message(strSet);
END $$
DELIMITER ; |