自己写了个存储过程,但是搞了老半天编译不过,大家帮我看看哪里错了。delimiter //
create procedure proc(in exeversion int,in resversion int,in updateversion int)
begin
declare @x int;
declare @y int;
declare @z int;
insert into versiontest values(exeversion ,resversion,updateversion);
set @x=1;
while @x<ver do
select max(resversion) into @y from exeversion where exeversion=@x;
set @z=@y+1;
insert into versiontest values(@x,@y,@z);
update version set exeversion=z where version=@x;
set @x=@x+1;
end while;
end;
//
create procedure proc(in exeversion int,in resversion int,in updateversion int)
begin
declare @x int;
declare @y int;
declare @z int;
insert into versiontest values(exeversion ,resversion,updateversion);
set @x=1;
while @x<ver do
select max(resversion) into @y from exeversion where exeversion=@x;
set @z=@y+1;
insert into versiontest values(@x,@y,@z);
update version set exeversion=z where version=@x;
set @x=@x+1;
end while;
end;
//
begin
declare @x int;
declare @y int;
declare @z int;
insert into versiontest values(@exeversion ,@resversion,@updateversion);
set @x=1;
while @x<ver --ver哪里来的?--这里要对ver赋值才行。
begin
select @y = max(resversion) from exeversion where exeversion=@x; --这里的exeversion是另外一个表吗?
set @z=@y+1;
insert into versiontest values(@x,@y,@z);
update version set exeversion = @z where version=@x; --这里的version又是另外一个表吗?
set @x=@x+1;
end
end
end;
create procedure my_proc @exeversion int,@resversion int,@updateversion int as
begin
declare @x int;
declare @y int;
declare @z int;
insert into versiontest values(@exeversion ,@resversion,@updateversion);
set @x=1;
while @x<ver --ver哪里来的?--这里要对ver赋值才行。
begin
select @y = max(resversion) from exeversion where exeversion=@x; --这里的exeversion是另外一个表吗?
set @z=@y+1;
insert into versiontest values(@x,@y,@z);
update version set exeversion = @z where version=@x; --这里的version又是另外一个表吗?
set @x=@x+1;
end
end
create procedure proc(in exeversion int,in resversion int,in updateversion int)
begin
declare @x int;
declare @y int;
declare @z int;
insert into versiontest values(exeversion ,resversion,updateversion);
set @x=1;
while @x<exeversion do
select max(resversion) into @y from versiontest where exeversion=@x;
set @z=@y+1;
insert into versiontest values(@x,@y,@z);
update version set updateversion=z where exeversion=@x;
set @x=@x+1;
end while;
end;错误是:you have an error in your sql systax;check the manual that corresponds to your Mysql server version for the right syntax to use near '@x int;declaer @y int;declare @z int; insert into versiontest valuetest values(exeversio' at line 3
MYSQL???汗,不懂,我就觉得这语法怎么跟MSSQL不一样,你还是去相应的版块问问吧