sql 存储过程 把一张表的几个字段插入到一张新表中

时间:2022-10-02 00:48:39
如题。
本地数据库中有张AnalogPoint表,我现在要把其中的三个字段(ID,Description,PointValue)这三个字段值查询到,同时把当前系统时间传给一个变量,把每条记录同时加上 这个变量(时间变量)传入到一张新表中SumTab(p_id,p_des,p_val,p_time)跟前面的几个字段一一对应。p_time就是刚刚获取到系统时间的变量。希望做过的人帮忙下。谢谢了。

9 个解决方案

#1


insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

#2


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

请把sumtab这张表的创建也写代码看下,行吗?

#3


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

时间不需要用变量传输码?你这样写可以???

#4


不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

#5


创建sumtab的代码可以这样:
create table sumtab as select ID,Description,PointValue,current timestamp from AnalogPoint

current timestamp、current time、current date等是db2定义的专用寄存器,SQL语句直接拿来用就行。

#6


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

这种方式是先查询后插入,timestamp的值是固定的

#7


引用 4 楼 chenjialin2000 的回复:
不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

还有一个问题就是:如何写个作业来不停的执行刚刚的转移数据的代码,就是每隔1分钟,或者2分钟,执行一次 把AnalogPoint数据转移到sumtab表的代码?

#8


这个牵涉到增量问题,不如写个触发器,当插入表AnalogPoint时就把数据同时插入sumtab表中。

#9


引用 7 楼 jwy0126 的回复:
引用 4 楼 chenjialin2000 的回复:
 不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

 还有一个问题就是:如何写个作业来不停的执行刚刚的转移数据的代码,就是每隔1分钟,或者2分钟,执行一次 把AnalogPoint数据转移到sumtab表的代码?


用计划任务定时执行db2的sql就行。

#1


insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

#2


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

请把sumtab这张表的创建也写代码看下,行吗?

#3


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

时间不需要用变量传输码?你这样写可以???

#4


不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

#5


创建sumtab的代码可以这样:
create table sumtab as select ID,Description,PointValue,current timestamp from AnalogPoint

current timestamp、current time、current date等是db2定义的专用寄存器,SQL语句直接拿来用就行。

#6


引用 1 楼 chenjialin2000 的回复:
insert into sumtab
select ID,Description,PointValue,current timestamp
from AnalogPoint

这种方式是先查询后插入,timestamp的值是固定的

#7


引用 4 楼 chenjialin2000 的回复:
不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

还有一个问题就是:如何写个作业来不停的执行刚刚的转移数据的代码,就是每隔1分钟,或者2分钟,执行一次 把AnalogPoint数据转移到sumtab表的代码?

#8


这个牵涉到增量问题,不如写个触发器,当插入表AnalogPoint时就把数据同时插入sumtab表中。

#9


引用 7 楼 jwy0126 的回复:
引用 4 楼 chenjialin2000 的回复:
 不过,如果一次批量插入的话,最后一个字段值是一样的,如果想不一致就要用游标。不过我看也没必要,按照我的试试,试玩之后再说可不可以,

 还有一个问题就是:如何写个作业来不停的执行刚刚的转移数据的代码,就是每隔1分钟,或者2分钟,执行一次 把AnalogPoint数据转移到sumtab表的代码?


用计划任务定时执行db2的sql就行。