想做一个更新其他数据库的程序,遇到个表之间出来的问题,求指点!!!!!!!!!!!!

Dotar 2012-11-21 11:50:32
数据库:sql1 sql2 .开始的时候两个数据库中的数据都是一样的,结构数据行表什么都一样,各有表:
tb1 tb2 tb3 tb4 四个表中的ID都是自增长,例如下面表,原始时都是下面这些数据:

tb1 tb2 tb3 tb4
id1 name1 id2 name2 id3 name3 id4 id1 id2 id3
1 aa 1 ff 1 qq 1 1 1 2
2 bb 2 gg 2 ww 2 1 2 3
3 cc 3 hh 3 ee 3 3 1 4
4 dd 4 jj 4 rr 4 2 1 1

tb4中数ID是根据前三个表的ID组合起来自动生成的,所有表的ID都是自动生成。

当 两个人甲、乙各去操作sql1,sql2,甲对sql1操作,乙对sql2操作。一段时间后 两个数据库中的数据各有增加,如何将sql1中新增加的

数据插入到sql2中去就当做新数据插入;求高人指点!!!!!!!!!!!!
...全文
176 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
触发器吧.........
Dotar 2012-11-26
  • 打赏
  • 举报
回复
持续讨论!!!
Dotar 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
可以使用触发器,这是最简单可靠的做法。 如果放在应用层来做,就应该额外定义一个字段,表示是否和另一个数据库同步过,如果同步了,就置一个值。
能不能写个简单的触发器给我 引导下 谢谢!
threenewbee 2012-11-21
  • 打赏
  • 举报
回复
可以使用触发器,这是最简单可靠的做法。 如果放在应用层来做,就应该额外定义一个字段,表示是否和另一个数据库同步过,如果同步了,就置一个值。
Jelena景 2012-11-21
  • 打赏
  • 举报
回复
路过学习一下
eric_lu780 2012-11-21
  • 打赏
  • 举报
回复
触发器不可以跨数据库使用,只能用存储过程
施黛 2012-11-21
  • 打赏
  • 举报
回复
不同数据库间还没用过触发器拷贝数据,关注下!
threenewbee 2012-11-21
  • 打赏
  • 举报
回复
引用 2 楼 z_dota 的回复:
引用 1 楼 caozhy 的回复:可以使用触发器,这是最简单可靠的做法。 如果放在应用层来做,就应该额外定义一个字段,表示是否和另一个数据库同步过,如果同步了,就置一个值。 能不能写个简单的触发器给我 引导下 谢谢!
Google“触发器”
bdmh 2012-11-21
  • 打赏
  • 举报
回复
如果你用实时操作,那就增加记录时附带增加到另一个表,可以用触发器,如果是自己写的代码,也可以在代码中同步 如果你定时的,可以增加一个字段作为标识,标识哪些是需要增加的
风吹腚腚凉 2012-11-21
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
可以使用触发器,这是最简单可靠的做法。 如果放在应用层来做,就应该额外定义一个字段,表示是否和另一个数据库同步过,如果同步了,就置一个值。
简直脑残啊,不会就别乱说。 这里我建议,甲操作SQL1的时候同时也操作SQL2就行了,否则容易有重复的数据,用个存储过程就行了,没必要写触发器。 无非就是2行 INSERT 语句而已。 如果是要定时更新,那就按照3楼说的做最好。
事理 2012-11-21
  • 打赏
  • 举报
回复
触发器只能针对同一个数据库吧,用一个timer控件,过指定的时间执行更新语句代码
鸣谢 首先要感谢linus,给了我们一个可以自由翱翔的平台; 其次,要感谢网络上千万的linux/windows先行者,给予的有意或无意的指点和帮助; 再次,感谢陈皓兄的《跟我一起写makefile》,引导我走过了makefile的迷雾。后来发现于凤昌兄译的《GNU Make使用手册》,也有颇多受益。 背景 从2004年,我在一个公司作服务端软件的开发,要支持linux/windows平台,主要是为了容易维护,就设计、开发了这一套比较常用的类。 2005一直在windows下作IPTV的开发,在2006年底,又回到linux下作IPV6下IPTV的开发。在空闲时间,看看两年前的那些零散类文件,开始整理这些类成库,并写了简单的使用和测试范例,放在网上和朋友们共享。 由于早期的平台从windows98和VC6.0,redhat8.0,经历了些变迁,没有太多的时间再一一仔细测试,就用现在的windowsXP和VS.2003,Fedaro Core4.0作的测试。 主要是为了相互学习,希望能和朋友们共同进步!如有引用,请标明出处,会不胜感激!禁止商业性的书籍的引用!很多不良的作者,完全是在骗钱。 功能简介 通用于linux/windows平台C++的应用。 主要是对一些系统功能,进行了简洁封装。 主要有读写锁类, 线程类, 线程池类, 定时器类, socket1.1的封装类, ini文件类, txt文件类, 可删除内容的文件类, 查找文件类, 调试输出类, 字符串类, 同步的普通队列和优先级队列类, 智能指针和内存自动管理类,数据库类. 特别声明:因为环境限制,这次测试代码中,没有测试数据库类。我以前也只是在PostgreSQL,SQL Server2000和Acess2000中实际用过。如有朋友用到,请自行修改、测试。 这些类的风格,与个人习惯密切相关。推荐QT,跨平台的类库,还是不错的;ACE就太难使用了! 编译和运行: 1. windwos下,用vs2003打开pub下的test.sln文件,所有的测试程序和类库文件就载入,编译即可。其它程序引用库时,请选中/MDd选项。 2. linux下,执行pub下的Makefile文件,编译即可。如果没有安装PostgreSql,数据库部分会编译不过。 关于inline函数 我写的这些类的函数,大部分是可以写成inline函数的,对性能提高也有很大的帮助。但是,GCC和VC的不同版本编译器的支持程度不同,可能会编译不过,所以就都没有为提高效率而写inline函数。依赖于编译器,对跨平台的程序来说,也比较麻烦! 不过,现在的硬件系统,对这些小小的性能提升,也感觉不出来的。 如有需要,请自行改写! 关于异常和错误处理 也是仁者见仁,智者见智! 习惯于C开发的朋友,大概喜欢函数错误时返回错误码。函数有返回值,就要处理,就使程序逻辑较为复杂,看去也比较的混乱。 我则喜欢用异常代替,主要是代码简洁和逻辑清晰。异常抛掷,会使流程很简洁,只显示执行正确时的流程,错误集中处理 对于那些失败即意味着中止的一个操作,我让其抛掷异常。如果是正常的分支流程,则用返回失败值。就我遇到的情况,大部分则为操作失败,调用的流程一般都要中止的。 这个判断也是比较难下的。放在一个局部,异常可能导致操作中止;但放在更上一层,则异常又可能是正确程序流程处理。 bug的反馈和修改支持 如果有重大的错误需要偶修正,请发到linhweikuo@hotmail.com的邮箱,尽量说明问题的现象,我会在一周内解决的(如果工作比较紧急的时候,不能即时就处理的)。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧