MySQL Procédure stockée erreur avec if...then...END if; déclarations

J'ai une base de données MySQL procédure stockée qui renvoie une erreur.

DELIMITER $$

DROP PROCEDURE IF EXISTS `test_schema`.`TEST_SPROC` $$  
CREATE PROCEDURE `test_schema`.`TEST_SPROC` (IN var0 INT, var1 INT)  
BEGIN

  DECLARE var0 INT;
  DECLARE var1 INT;

  SELECT COUNT(*) INTO var0 FROM INFORMATION_SCHEMA.`TABLES` 
  WHERE `TABLE_SCHEMA`='test_schema' AND `TABLE_NAME`='original_table'; 

  SELECT COUNT(*) INTO var1 FROM INFORMATION_SCHEMA.`COLUMNS` 
  WHERE `TABLE_SCHEMA`='test_schema' AND `TABLE_NAME`='new_table' 
  AND `COLUMN_NAME`='id';

  IF var0=1 THEN
    RENAME TABLE test_schema.original_table TO test_schema.new_table;   
  END IF;

  IF var1=1 THEN
    ALTER TABLE test_schema.new_table CHANGE id AccountID VARCHAR;   

  END IF;       #error is thrown here.

END $$

DELIMITER ;

Erreur:

Ligne de Script: 4 Vous avez une erreur dans votre syntaxe SQL; consultez le manuel
qui correspond à votre versions du serveur MySQL pour la bonne syntaxe
utilisation à proximité d' '; END if;

FIN " à la ligne 15

Quel est le problème avec mon instruction if?

Si votre déclaration est correctement formé. C'est l'instruction alter table qui a des erreurs de syntaxe.

OriginalL'auteur Josh | 2013-07-09