天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2464|回复: 8

[其他] a表的与b表结构相同,取a表中与b表中不同的数据,插入到b表中

[复制链接]
沈阳铁路局 发表于 2013-3-8 09:09:43 | 显示全部楼层 |阅读模式
本帖最后由 kimi 于 2013-10-31 10:02 编辑

a表是一个外部的数据表(ct_22b,oracle的数据库),已经在平台中定义了数据源。现在可以实现每天从a表中取数据,插入到b表(myapps中的一个数据表tlk_车号信息,oracle的数据库)。现在想实现的是:每天多次查询a表中的数据,如果发现有不相同的,就插入到b表中。谢谢
bess 发表于 2013-3-8 09:37:47 | 显示全部楼层
您好,请问您的意思是否是说:
假设a表的id有值:1,2,3,4;b表中的id有值:1,2
那么您希望查询出a表中的id等于3,4的记录?
如果是,那么您的sql写成:
select * from a  where id  not  in (select id from b)
即可查询出a表中在b表中不存在的记录.
如您还有其他问题,请告知您具体的问题.
spiral 发表于 2013-3-8 09:40:29 | 显示全部楼层
1.如果希望系统每天多次自动执行的话,建议您使用定时任务
2.关于插入的数据,麻烦楼主准确的表述,“数据不一样时插入”,究竟是以什么为逻辑判断,该问题清楚以后就可以转换为脚本了
 楼主| 沈阳铁路局 发表于 2013-3-8 09:41:48 | 显示全部楼层
问题是a表是另一个数据源,b表是我平台使用的数据源
bess 发表于 2013-3-8 09:45:30 | 显示全部楼层
您好,请问您的a,b两个表对应的数据源a和数据源b是否是在同一个数据库的同一实例下呢?如果是,您可以在表名前面加上数据库名称即可,类似:
select * from A.a  where id  not  in (select id from B.b)
如果是不同实例下的两个数据库,那么您可能需要在数据库中通过桥连接写存储过程来完成查询的动作,然后在平台中调用存储过程.
 楼主| 沈阳铁路局 发表于 2013-3-8 10:01:18 | 显示全部楼层
我可以再按钮中调用存储过程吗
create procedure myproc
as
begindelete from B where B.id in(select id from A where A.id = B.id)
insert into B select * from A
end
a表和B表,把A表里面的数据查出来插到B表,根据编号判断,如果有相同就更新那条数据,不同的则插 入
spiral 发表于 2013-3-8 10:15:21 | 显示全部楼层
您好,您可以在按钮中调用存储过程,具体脚本可以参考下帖:
http://www.teemlink.com/bbs/viewthread.php?tid=162093
根据您一楼的描述,A、B表不在同一个数据库吧?那么您的sql不能直接查询到这2个表的(除非您做了桥连接)
bess 发表于 2013-3-11 14:42:36 | 显示全部楼层
客户反馈,由于有其他任务要优先处理,暂时不处理该问题,后期有问题,在跟进.
kimi 发表于 2013-10-31 10:01:52 | 显示全部楼层
由于联系该客户没有反应,故对应的帖子先移到其他。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 05:35

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表