2014-10-03 4 views
0

хранимой процедуры, если MySQL

create procedure update_keyoffice(out p_key varchar(30),out p_hostname varchar(30)) 
 
begin 
 
\t declare p_keyoff varchar(30); 
 
\t select keyoff into p_keyoff from masterpc where keyoffice = p_key; 
 
\t if(p_keyoff = p_key) then 
 
\t \t insert into keyofficehistory (id,keyoff,hostname,datecreate) values 
 
\t \t (null,p_key,p_hostname,now()) 
 
\t end if 
 
end

ошибка

SQL-запрос:

CREATE PROCEDURE update_keyoffice (из p_key VARCHAR (30), из p_hostname VARCHAR (30)) НАЧАТЬ DECLARE p_keyoff varchar (30);

MySQL говорит: Документация

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать около «» в строке 3

ответ

0

При определении хранимых процедур и триггеров, вы должны использовать пользовательские delimiter которые, кажется, не хватает в ваш код.

Измените код, как показано ниже:

delimiter // 

-- your stored procedure code here 

-- but don't forget to use new delimiter after end statement 
end; // 

-- now reset delimiter 
delimiter ; 

См:
CREATE PROCEDURE and CREATE FUNCTION Syntax