如何一直监听数据库某个表,当有数据增加时,向另外的一个表插入,并改变状态。

目前项目有一个需求要一直监听数据库某个表,当有数据进入马上向另一个表插入数据。
我现在使用的就是在php页面使用while(ture)一直执行。用shell脚本进行监听,让这个PHP文件运行在cli模式下,
可是各位还有没有更好的方法呢?希望评论区各位给出你们的建议。感谢

再说一句,我用的是sql server 的数据库。。

阅读 11.1k
6 个回答

你需要的是触发器.

简单说下触发器能干什么,"触发器是通过事件(增、删、改)进行触发而被执行的操作。其在表中数据发生变化时自动执行"

你看,是不是还挺符合你“有数据插入时,去另一个表操作一下”的需求

触发器大体格式:

create trigger <trigger-name> on <table-name> update|insert|delete as <your-sql-want-to-proceed>

具体自己去查查吧

也许你需要引入一个读写数据库的中间件,所以对数据库的读写都经过这个中间件,中间件解析读写操作的类型,在这个里面注册事件

结合一楼的思路,使用触发器,然后调用外部程序 可以参考这个http://www.qingfengju.com/art...

但是如果二楼的方案能够实施的话,建议还是按照二楼的方式进行。

写个存储过程不就得了。没必要去监控这个东西

一楼说的情况针对同一个库里面可以这样搞,二楼说的我想应该可以满足你的需求。通过数据库中间件来实现

有个思路:写个接口。。向监测的表中插入数据的时候,请求这个接口。。然后在接口里操作另一个表。感觉应该可行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题