2013-01-01 1 views
14

Eventuali duplicati:
Error with mysql procedures ERROR 1304 & ERROR 1305Procedura di eliminazione che esiste già?

si tenta di eseguire un comando per eliminare una procedura:

DROP PROCEDURE create_datetable 

In questo modo ho la un avvertimento:

1304 PROCEDURE create_datetable already exists 

Successivamente, quando cerco di creare una nuova procedura con lo stesso nome, ricevo lo stesso avviso.

Cosa significa?

+0

Cosa 'routineName' stai usando, esattamente? –

+0

Se fa alcuna differenza, ho modificato il post. – MikkoP

+0

Hai provato 'DROP PROCEDURE SE EXISTS', come suggerito da @bonCodigo? –

risposta

28

Riferimento: Drop Procedure.

Il codice:

DROP PROCEDURE IF EXISTS procedureName; 
... 

Edit:

Puoi provare a rinominare il procedimento e quindi provare a cadere come per questo post: Rename a mysql procedure?

provare questo:

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

Si noti inoltre: Se si sono concessi privilegi per gli utenti per questa procedura è necessario aggiornare il nome della procedura in newProcedure pure.

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

Avete la libertà di eliminare tutte le procedure? Se è così, per favore prova questo post: Drop all stored procedures in MySQL or using temporary stored procedures e post2: Drop all stored procedures in MySQL or using temporary stored procedures.

+0

Con questo si ottiene che "PROCEDURE non esiste". Quando sto provando a crearne uno, si dice lo stesso. Quando provo a usarlo, dice che la procedura non esiste. – MikkoP

+0

@MikkoP Ho aggiornato la risposta aggiungendo ulteriori routine che è possibile provare. Si prega di dare uno sparo e commentare. – bonCodigo