当前位置: 首页 > 编程笔记 >

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

栾和玉
2023-03-14
本文向大家介绍sql存储过程实例--动态根据表数据复制一个表的数据到另一个表,包括了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存储过程实例--动态根据表数据复制一个表的数据到另一个表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 需要帮助编写存储过程,以便将数据从一个表复制到多个表。下面是场景示例: > table1有10列20行数据。

  • 问题内容: 我有两个数据库,一个叫做,一个叫做。由于我想练习插入,更新内容,因此我想将某些表从复制到。 我要复制的表称为: 我试图做的是(使用SSMS)右键单击表格,但其中没有“复制”! 问题答案: 假设您有两个数据库,例如A和B: 如果目标表不存在,将创建以下脚本(我不建议这样): INTO COPY_TABLE_HERE FROM A.dbo.table_from_A table_A 如果目标

  • 在SQL Server中,如何将数据从一个表复制/追加到具有相同架构的另一个表中? 编辑: 假设有一个问题 它使用与表2中相同的模式和数据创建表1。 有没有这样的短查询只将整个数据复制到一个已经存在的表中?

  • 问题内容: 我在SQLite中有两个表,看起来像这样 我试图编写查询以基于表Y中的记录更新表X上的记录。更新的条件如下所示 但是当我尝试这样做时,我收到一条错误消息,说 没有这样的列:table_y.c2 问题答案: 删除的答案关于错误的原因是正确的:必须在查询中 引入 关系标识符(例如,使用FROM / JOIN),然后才能使用它。 虽然SQLite的不 不 支持(因此没有办法直接引入查找关系)

  • 问题内容: 如何从一个数据库复制到另一个数据库。 数据库名称visco 我想将所有表从visco数据库复制到新数据库名称作为neptune 我创建了一个没有任何表的数据库,然后尝试从database1.bak文件还原数据库,然后显示错误为 需要查询帮助 问题答案: 使用SQL Server Management Studio: 选项1 ->右键单击要复制的数据库 ->选择“任务”>“生成脚本” -

  • 问题内容: 我必须使用 Query* 将 具有数据 的 表从一个数据库 复制 到另一个数据库 。我知道如何在数据库中复制带有数据的表。但是我不确定如何在两个数据库之间进行复制。 * 我必须复制大量的表,因此我需要使用查询的任何快速方法… 任何人都请帮忙…提前感谢… 问题答案: 您可以使用相同的方法在一个数据库中复制表, 但是可以使用完全限定的表名,如下所示: 这将创建一个新的表在数据库从表whih