2012-04-24 1 views
0

У меня есть ошибка в этом коде, не в состоянии понять, где я буду неправильно:CREATE PROCEDURE ошибку

CREATE DEFINER=`condoleu`@`%` PROCEDURE `sp_user_field_content_mgt`(FieldContentId varchar(50), FieldRef varchar(50),UserRefId varchar(50), description text,photoUpload varchar(50), photoText varchar(50), MusicText varchar(50), MusicUpload varchar(50), VideoText varchar(50), VideoUpload varchar(50), DispText enum('Y','N'), Flag int(1)) 
BEGIN 
IF Flag=0 THEN 
INSERT INTO tbl_contribution_master(field_content_id,field_ref_id,user_ref_id,description,uploaded_photo,photo_text,uploaded_music,music_text,uploaded_video,video_text,disp_text)  VALUES(FieldContentId,FieldRef,UserRefId,description,photoUpload,photoText,MusicUpload,MusicText,VideoUpload,VideoText,DispText); 
ELSE 
UPDATE tbl_contribution_master SET 
description = description, 
uploaded_photo = photoUpload, 
photo_text = photoText, 
uploaded_music = MusicUpload, 
music_text = MusicText, 
uploaded_video = VideoUpload, 
video_text = VideoText, 
disp_text = DispText 
WHERE field_content_id = FieldContentId; 
END IF; 
END 

Ошибка: # 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' по строке 4

Пожалуйста, помогите!

+0

Не может (пока) определить источник вашей ошибки, но, как в сторону, почему бы вам не использовать [ 'REPLACE'] (http://dev.mysql.com/doc/refman/5.6 /en/replace.html) или ['INSERT ... ON DUPLICATE KEY UPDATE'] (http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html)? – eggyal

ответ

0

У вас есть specified an alternative DELIMITER, так что MySQL знает, что ваша процедура не заканчивается в первую точку с запятой, которую он встречает (в строке 4)?

DELIMITER ;; -- or anything you like 

CREATE PROCEDURE ... ;; 

DELIMITER ; -- back to normal again 
+0

попытался сменить .. не помогает .. – 7HUND3RX