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
|
BEGIN
DECLARE lDone INT DEFAULT 0;
DECLARE lNomTable CHAR(64);
DECLARE lNomColonne CHAR(64);
DECLARE lType CHAR(64);
DECLARE lCurs CURSOR FOR
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA='compta2'
AND (COLUMN_NAME like 'idUtil%' OR COLUMN_NAME like 'util%') and data_type='tinyint'
ORDER BY TABLE_NAME, DATA_TYPE;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET lDone = 1;
OPEN lCurs;
REPEAT
FETCH lCurs INTO lNomTable, lNomColonne, lType;
IF NOT lDone THEN
PREPARE lReqAlterTAble FROM 'ALTER TABLE ? MODIFY COLUMN ? SMALLINT UNSIGNED NOT NULL';
SET @nomTable = CONCAT('compta2.',lNomTable);
SET @nomColonne = lNomColonne;
EXECUTE lReqAlterTAble USING @nomTable, @nomColonne;
END IF;
UNTIL lDone END REPEAT;
CLOSE lCurs;
END |
Partager