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,帮帮忙,
有答案就结贴我的风格。
解决方案 »
- 表内容复制出现问题
- 来解释下order by 这个东西.灵异事件还是我太菜?
- 一条查询语句的讨论与疑问
- 无法给mysql数据库添加用户
- 一个oracle的查询语句,怎么转换称Mysql的语句。。。。。。。。。。。
- mysql是否支持事务处理,如支持从第几版支持,怎样做?
- 怎样把Access数据库中的数据转移到MicrosoftSQL数据库中呀?
- 初次接触mysql,请教mysql在linux 下中文显示问题!
- 高分求助:MySql中用什么方法实现触发器功能?
- 怎么样根据生日选择年龄(段)mysql TO_DAYS(NOW()) - TO_DAYS(date_col)<= 30返回天数 怎样返回年
- mysql怎么把存储过程的参数用到limit中
- mysql简单赋值错误
prepare stmt from @v_sql;
execute stmt;
deallocate prepare stmt;
SET _SQL = ''