Я пишу хранимые процедуры впервые, и это не работает. Проблема в том, что я не вижу причин, по которым это не работает.
Я запускаю его через phpmyadmin 2.8.2.4. Моя версия MySQL 5.1. Вот первая часть запроса:
create procedure under_user_type (in original_post int, out user_type int, out user_id longtext)
begin
if exists (
select *
from wp_postmeta as pm
where pm.post_id = original_post
and pm.meta_key = '_tdomf_original_poster_id'
) then
set user_type = 0;
select pm.meta_value
into user_id
from wp_postmeta as pm
where pm.post_id = original_post
and pm.meta_key = '_tdomf_original_poster_id';
elseif exists ( ...
Я получаю ошибку:
#1064 - 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 9
Строка 9 соответствует первому оператору выбора в части if exists ( ... ) then
.
Обновление:
Я получаю ту же ошибку, если использую:
create procedure under_user_type (in original_post int, out user_type int, out user_id longtext)
begin
if 1=1 then begin
set user_type = 0;
select pm.meta_value
into user_id
from wp_postmeta as pm
where pm.post_id = original_post
and pm.meta_key = '_tdomf_original_poster_id';
end;
Обновите снова:
Выполнение примеров на на этой странице документации MySQL также дает мне сообщение об ошибке "проверьте ваш синтаксис рядом с '". Я попытался удалить все вкладки из запроса, но ничего не получилось.
Обновление в третий раз:
Я могу выполнить этот запрос:
create procedure blah()
begin
end;
но не этот запрос:
create procedure blah2()
begin
if 1=1 then
begin
end;
end if;
end;
как я получаю ту же ошибку.