栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 数据库 > MySQL > MsSql

sql存储过程实例--动态根据表数据复制一个表的数据到另一个表

MsSql 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sql存储过程实例--动态根据表数据复制一个表的数据到另一个表

动态根据表数据复制一个表的数据到另一个表

把track表的记录 根据mac_id后两位数字,复制到对应track_? 的表中

如:mac_id=12345678910,则后两位10 对应表为track_10,就把此记录复制到track_10中

创建一个 sub_track的存储过程实现:

-- 创建一个 名为sub_track的存储过程
CREATE PROCEDURE sub_track()
begin
  declare i int;  -- 定义 循环变量i
  set @imei =0;  -- 定义imei最后两位
  set @t_count=0; -- 定义 表有多少条记录变量
  SET i=0;
  SELECt COUNT(*)INTO @t_count FROM track; -- 获取表的条数
while i <= @t_count do     -- 循环
 SELECt RIGHt(mac_id,2) INTO @imei FROM track ORDER BY gpstime DESC LIMIT i, 1;  -- 获取 imei 最后两位 
  set @imei =ConVERT(@imei,SIGNED);  -- 转为数字
  -- SQL 语句
  set @sql1=" (
 mac_id,mac_type,channel,type,x,y,gpstime,bvalid,speed,dir,s1,s2,s3,s4,ins_date,imagefile,battery
      ) 
     SELECt 
 mac_id,mac_type,channel,type,x,y,gpstime,bvalid,speed,dir,s1,s2,s3,s4,ins_date,imagefile,battery
     FROM track 
     ORDER BY
gpstime DESC
     LIMIT ";
  set @inset_sql=CONCAt("INSERT INTO track_",@imei,@sql1,i,",",1);    -- 拼接完整的插入 sql语句
  PREPARE insert_track from @inset_sql;    -- 预编译
  EXECUTE insert_track;     -- 执行sql语句
  set i=i+1;
-- 结束循环
end while;
  commit;
end
-- 执行存储过程
CALL sub_track();
@flm

总结

以上所述是小编给大家介绍的sql存储过程实例--动态根据表数据复制一个表的数据到另一个表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/168925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号