2013-01-01 11 views
14

संभव डुप्लिकेट:
Error with mysql procedures ERROR 1304 & ERROR 1305ड्रॉप प्रक्रिया जो पहले से मौजूद है?

मैं एक प्रक्रिया ड्रॉप करने के लिए एक कमांड चलाने का प्रयास:

:

DROP PROCEDURE create_datetable 

ऐसा करने से मैं एक चेतावनी मिलती है

1304 PROCEDURE create_datetable already exists 

उसके बाद जब मैं एक ही नाम के साथ एक नई प्रक्रिया बनाने की कोशिश कर रहा हूं, तो मुझे वही चेतावनी मिलती है।

इसका क्या अर्थ है?

+0

क्या आप 'प्रक्रिया नाम' का उपयोग कर रहे हैं, बिल्कुल? –

+0

यदि इससे कोई फर्क पड़ता है, तो मैंने पोस्ट संपादित किया। – MikkoP

+0

क्या आपने @ डीआरओपी प्रक्रिया अगर एक्सआईस्ट्स 'की कोशिश की है, जैसा कि @bonCodigo द्वारा सुझाया गया है? –

उत्तर

28

संदर्भ: Drop Procedure

कोड:

DROP PROCEDURE IF EXISTS procedureName; 
... 

संपादित करें:

आप प्रक्रिया का नाम बदलने की कोशिश कर सकते हैं और फिर इस पोस्ट के अनुसार यह ड्रॉप करने का प्रयास करें: Rename a mysql procedure?

इस प्रयास करें:

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

यह भी ध्यान रखें: यदि इस प्रक्रिया के लिए उपयोगकर्ताओं के लिए विशेषाधिकार प्रदान किया है आप newProcedure में प्रक्रिया नाम अपडेट करने के बारे आवश्यकता होगी।

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

क्या आपके पास सभी प्रक्रियाओं को हटाने की स्वतंत्रता है? यदि ऐसा है तो कृपया इस पोस्ट को आजमाएं: Drop all stored procedures in MySQL or using temporary stored procedures और पोस्ट 2: Drop all stored procedures in MySQL or using temporary stored procedures

+0

इस के साथ मुझे 'प्रक्रिया मौजूद नहीं है'। जब मैं एक बनाने की कोशिश कर रहा हूं, तो यह वही कहता है। जब मैं इसका उपयोग करने की कोशिश करता हूं, तो यह कहता है कि प्रक्रिया मौजूद नहीं है। – MikkoP

+0

@MikkoP मैंने अतिरिक्त दिनचर्या जोड़कर जवाब अपडेट किया है जिसे आप आजमा सकते हैं। कृपया एक शॉट और टिप्पणी दें। – bonCodigo