2013-08-02 5 views
0

Я получаю следующее сообщение об ошибке при создании хранимой процедуры в MySQL, как следующимошибка при создании хранимой процедуры в MySQL

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 8 

пыльник один мой хранимая процедура

mysql> delimiter // 

mysql> create procedure music_procedure(in movie_name varchar(100),in movie_image varchar(100),in music_director varchar(150),in cast varchar(150),in songtitle varchar(150),in duration time,in artist varchar(100),in lyricist varchar(100),in status varchar(50)) 

-> begin 

-> if not exists (select movie_name from music where music.movie_name=movie_name) then 

-> insert into music(movie_name,movie_image,music_director,cast) values(movie_name,movie_image,music_director,cast); 

-> insert into music_details(songtitle,duration,artist,lyricist,status,music_id) values(songtitle,duration,artist,lyricist,status,(select music_id from music where music.movie_name=movie_name)); 

-> else 

-> insert into music_details(songtitle,duration,artist,lyricist,status,music_id) values(songtitle,duration,artist,lyricist,status,(select music_id from music where music.movie_name=movie_name)); 


-> end 


-> // 
+3

Я не вижу 'конец if' – Sathya

ответ

0

Вы просто не хватает END IF;. Поместите его непосредственно перед оператором END;

+0

Это не имеет значения, пробельные является inignificant. – Barmar

+0

@Barmar Да, неправильное начальное наблюдение :) – Phil

1

добавить end if; в коде

mysql> delimiter // 

mysql> create procedure music_procedure(in movie_name varchar(100),in movie_image varchar(100),in music_director varchar(150),in cast varchar(150),in songtitle varchar(150),in duration time,in artist varchar(100),in lyricist varchar(100),in status varchar(50)) 

-> begin 

-> if not exists (select movie_name from music where music.movie_name=movie_name) then 

-> insert into music(movie_name,movie_image,music_director,cast) values(movie_name,movie_image,music_director,cast); 

-> insert into music_details(songtitle,duration,artist,lyricist,status,music_id) values(songtitle,duration,artist,lyricist,status,(select music_id from music where music.movie_name=movie_name)); 

-> else 

-> insert into music_details(songtitle,duration,artist,lyricist,status,music_id) values(songtitle,duration,artist,lyricist,status,(select music_id from music where music.movie_name=movie_name)); 


-> end if; 


-> // 
+1

Вам также нужен 'end' для соответствия' begin'. – Barmar

+0

жаль, что я забыл конец, если теперь его работа. – user2609600

Смежные вопросы