存储过程如果是mysql

时间:2014-10-03 07:31:19

标签: mysql stored-procedures

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

错误

  

SQL查询:

     

CREATE PROCEDURE update_keyoffice(输出p_key varchar(30),out   p_hostname varchar(30))BEGIN DECLARE p_keyoff varchar(30);

     

MySQL说:文档

     

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法   靠近''第3行

1 个答案:

答案 0 :(得分: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