web-dev-qa-db-fra.com

Procédure d'abandon qui existe déjà?

Duplicata possible:
Erreur avec les procédures mysql ERROR 1304 & ERROR 1305

J'essaie d'exécuter une commande pour supprimer une procédure:

DROP PROCEDURE create_datetable

En faisant cela, j'obtiens l'avertissement:

1304 PROCEDURE create_datetable already exists

Après cela, lorsque j'essaie de créer une nouvelle procédure avec le même nom, j'obtiens le même avertissement.

Qu'est-ce que ça veut dire?

24
MikkoP

Référence: Procédure de suppression .

Le code:

DROP PROCEDURE IF EXISTS procedureName;
...

Modifier:

Pouvez-vous essayer de renommer la procédure, puis essayez de la supprimer comme indiqué dans cet article: Renommer une procédure mysql ?

essaye ça:

UPDATE `mysql`.`create_DataTable`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
name = '<old_proc_name>';

Notez également: si vous avez accordé des privilèges aux utilisateurs pour cette procédure, vous devrez également mettre à jour le nom de la procédure dans newProcedure.

UPDATE `mysql`.`create_DataTable`
SET Routine_name = '<new_proc_name>'
WHERE Db = '<database>' AND
  Routine_name = '<old_proc_name>';
 FLUSH PRIVILEGES;

Avez-vous la liberté de supprimer toutes les procédures? Si c'est le cas, veuillez essayer ce post: Supprimer toutes les procédures stockées dans MySQL ou en utilisant des procédures stockées temporaires et post2: Supprimer toutes les procédures stockées dans MySQL ou en utilisant des procédures stockées temporaires .

42
bonCodigo