delimiter $$
drop procedure if exists ChangeSequence$$
create procedure ChangeSequence
(
_sign int ,-- 0: 上移 1:下移
TableName varchar(50) ,-- 表名
ItemName varchar(50) ,-- 主键字段名
ItemID int , -- 主键ID
SortName varchar(50) , -- 排序ID
TypeName varchar(50) , -- 分类字段名
TypeValue varchar(50) -- 分类值
)
begin
declare _SQL varchar(4000);
declare ThisSort int;
declare PREVID int;
declare NextID int;
declare _Count int; create temporary table _Tab
(
ItemID int,
Sort int
);
set _SQL=concat('INSERT INTO _Tab (',ItemID,Sort,') SELECT ' ,ItemName,SortName,' FROM ',TableName) ;if (TypeName<>'' and TypeValue<>'') then
set _SQL=concat(_SQL,' where ',TypeName,TypeValue);
end if;
SET _SQL = concat(_SQL,' ORDER BY Sort ASC ') ;
str @v_sql=_SQL;
prepare stmt from @v_sql;--这个附近有错误
execute(stmt);
deallocate prepare stmt;
SET _SQL = ''
end$$唉,悲剧没搞过mysql,帮帮忙,
有答案就结贴我的风格。
drop procedure if exists ChangeSequence$$
create procedure ChangeSequence
(
_sign int ,-- 0: 上移 1:下移
TableName varchar(50) ,-- 表名
ItemName varchar(50) ,-- 主键字段名
ItemID int , -- 主键ID
SortName varchar(50) , -- 排序ID
TypeName varchar(50) , -- 分类字段名
TypeValue varchar(50) -- 分类值
)
begin
declare _SQL varchar(4000);
declare ThisSort int;
declare PREVID int;
declare NextID int;
declare _Count int; create temporary table _Tab
(
ItemID int,
Sort int
);
set _SQL=concat('INSERT INTO _Tab (',ItemID,Sort,') SELECT ' ,ItemName,SortName,' FROM ',TableName) ;if (TypeName<>'' and TypeValue<>'') then
set _SQL=concat(_SQL,' where ',TypeName,TypeValue);
end if;
SET _SQL = concat(_SQL,' ORDER BY Sort ASC ') ;
str @v_sql=_SQL;
prepare stmt from @v_sql;--这个附近有错误
execute(stmt);
deallocate prepare stmt;
SET _SQL = ''
end$$唉,悲剧没搞过mysql,帮帮忙,
有答案就结贴我的风格。
prepare stmt from @v_sql;
execute stmt;
deallocate prepare stmt;
SET _SQL = ''