2013-01-01 14 views
14

Powiel możliwe:
Error with mysql procedures ERROR 1304 & ERROR 1305Procedura upuszczenia, która już istnieje?

próbuję uruchomić polecenie, aby upuścić procedurę:

DROP PROCEDURE create_datetable 

W ten sposób pojawia się ostrzeżenie:

1304 PROCEDURE create_datetable already exists 

Później, gdy próbuję utworzyć nową procedurę o tej samej nazwie, otrzymuję to samo ostrzeżenie.

Co to oznacza?

+0

Co dokładnie używasz "procedureName"? –

+0

Jeśli to robi jakąkolwiek różnicę, zredagowałem wpis. – MikkoP

+0

Czy wypróbowałeś 'PROCEDURA DROP IF IF EXISTS', jak zasugerował @bonCodigo? –

Odpowiedz

28

Dotyczy: Drop Procedure.

Kod:

DROP PROCEDURE IF EXISTS procedureName; 
... 

Edit:

możesz spróbować zmienić nazwę procedury, a następnie spróbuj upuścić go jak za tego posta: Rename a mysql procedure?

spróbuj tego:

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

Również Uwaga: Jeżeli zostały przyznane uprawnienia do użytkowników dla tej procedury trzeba będzie zaktualizować nazwę procedury w newProcedure również.

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

Czy masz swobodę usuwania wszystkich procedur? Jeśli tak, wypróbuj ten wpis: Drop all stored procedures in MySQL or using temporary stored procedures i post2: Drop all stored procedures in MySQL or using temporary stored procedures.

+0

Tym razem otrzymuję komunikat "PROCEDURA nie istnieje". Kiedy próbuję ją utworzyć, mówi to samo. Kiedy próbuję go użyć, mówi, że procedura nie istnieje. – MikkoP

+0

@MikkoP Zaktualizowałem odpowiedź, dodając dodatkowe procedury, które można wypróbować. Podaj zdjęcie i komentarz. – bonCodigo

Powiązane problemy