2013-05-14 3 views
0

Я пытаюсь создать процедуру, но это дает мне синтаксическую ошибку. Я не уверен, что, кажется, проблемаMySQL хранимая процедура без параметров

 delimiter $$ 
     create 
     procedure inactivity() 
     LANGUAGE SQL 
     begin 
     [mysql block] 
     end $$ 
     delimiter; 
+0

Какое сообщение об ошибке и с какой линией оно связано? – w5m

+0

@ w5m, это ошибка: # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с «create procedure question_inactivity»() begin begin delete from questions_temp где 'at line 2 – Wabbit

+0

СОВЕТ: правильно напишите каждый SQL-оператор, заканчивая строку ';' где угодно необходимо, внутри блока [mysql] – diEcho

ответ

2

Я понял это сам. Неправильно то, что между разделителем и точкой с запятой не было места.

1

Попробуйте этот SQL код:

delimiter $$ 
drop procedure if exists question_inactivity; 
create procedure question_inactivity() 
begin 
delete from questions_temp where active= 1; 
update questions set active = 0 where question_id in(select question_id from questions_temp); 
drop table questions_temp; 
end $$ 
delimiter; 

-------------------- ---------- ОБНОВЛЕНИЕ ------------------------------------

я работает это в PhpMyAdmin и it'works:

delimiter $$ 

create procedure question_inactivity() 
begin 
delete from questions_temp where active= 1; 
update questions set active = 0 where question_id in(select question_id from questions_temp); 
drop table questions_temp; 
end 

$$ 

в поле ввода Разделитель я поставил это значение: $$

+0

Это дает мне ту же синтаксическую ошибку (ошибка # 1064) – Wabbit

+0

Я обновляю ответ – Hackerman

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