2012-04-24 75 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行使用正确的语法“'在第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 2012-04-24 06:35:23

回答

0

你有specified an alternative DELIMITER,因此MySQL知道你的程序不会在遇到(4号线),第一个分号结束?

DELIMITER ;; -- or anything you like 

CREATE PROCEDURE ... ;; 

DELIMITER ; -- back to normal again 
+0

尝试更改..不帮助.. – 7HUND3RX 2012-04-24 16:57:29