A. php中有没有什么方法可以实现实时监听数据库中的某张表的变化
最好的办法是,在应用程序生命周期内,对于数据库设置有事中核件钩子,用于监听程序对于数据库的操作。这样非常方便处理逻辑流程。
1 - 表的数据变化
表数据发生了变化,毫册培誉无疑问是写操作,包括以下几种情形:
新建条目 create
更新条目 update
删除条目 delete
以上三种都是写操作,会对表数据写入。
Laravel Observer
结语
上面的方法要求读者有laravel框架的使用基础,对于构建中大型应用非常有利。
B. 可以监控到数据库变化的机制有哪些
存储过程、数据库日志。当被监听的数据库中的数据发生变化时,可以监控到数据库变化的机制基埋物有存储过程、搏液数据库日志,从而获得新增数据,或者修改的液氏数据。
C. c#程序实现,监控sql server2005数据库中某一个表的变化,并获取.求大神帮忙
尝试这样的思路:
假如你监控A表,将A表的所有ID写入一个检测表中
--创建表
createtableA_CheckUpdate(AIDint,BinaryCheckSumint,Remarkvarchar(50))
--将表A的初始数据插入检测更新表中
insertintoA_CheckUpdateselectAID,Binary_CheckSum(*),''fromA
--你写一个通信每隔一段时间比如5秒钟检查一次
--查询A表被更新过的记录
select*闹州蠢from液陪A_CheckUpdate
whereexists(
selectAIDfromAwhereA.AID=A_CheckUpdate.AID
andbinary_checksum(*)<>A_CheckUpdate.BinaryCheckSum)
--如果迹氏是查看insert或者delete的数据请查看A_CheckUpdate是否有多余的ID或者缺少的ID
selectA.IdfromAleftjoinA_CheckUpdateona.ID=A_CheckUpdate.ID
whereA_CheckUpdate.IDisnull
selectA_CheckUpdate.IdfromArightjoinA_CheckUpdateona.ID=A_CheckUpdate.ID
whereA.IDisnull
D. 怎样监听到数据库的数据变化
在android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能会搂关cursor而导致程序内存未释放等等。其实android内部提供了一种ContentObserver的东西来监听数据库内容的变化。
ContentObserver的构造函数需要一个参数Hanlder,因为ContentObserver内部使用了一个实现Runnable接口的内部类NotificationRunnable,来实现数据库内容的变化。需要使用hanlder去post消息。注册ContentObserver的方法是:getContentResolver().registerContentObserver(uri, notifyForDescendents, observer).
上面3个参数为:uri----Uri类型,是需要监听的数据库的uri.
notifyForDescendents---boolean true的话就会监听所有与此uri相关的uri。false的话则是直接特殊的uri才会监听。一般都设置为true.
observer-----ContentObserver 就是需要的contentobserver.
初始化一个ContentObserver对象,重载onChange(boolean ),在这个方法里去操作数据库的使用,针对变化后的使用。
E. 关于sql2008,怎么监控某数据库表变化情况
在每个表中添加触发器~~
一旦数据有变化, 触发器就被触发~ 触发器中写代码将这个变化写入到你指定的日志表中即可。
注意:是多个表的触发器, 去操作同一个日志表。
F. 如何实时监测数据库变化
方法不唯一,而且越高的版本提供的工具虚迹越多,比如监控SQL命令,用Profile
监控数据差蚂并一是可以直接在表上加触发器,记录变更日志
数据库还有审计audit功能,2016还有历史表物漏,CDC等
G. C#winform程序怎么监视数据库的变化
首先,在要插入的数据表增祥团漏加触发器,如果有数据插入,则将此信息插谨烂入一个中间表,表示或做有更新;其次,在C#端定义一个计时器timer,循环检测中间表有无更新,有则提示,完成后清空中间表
H. 怎样用JAVA来监听数据库里的变化
可以使用ContentObserver对象监听,如下:
public final void registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
功能:为指定的Uri注册一个ContentObserver派生类实例,当给定的Uri发生改变时,回调该实例对象去处理。
参数:uri 需要观察的Uri(需要在UriMatcher里注册,否则该Uri也没有意义了)
notifyForDescendents 为false 表示精确匹配,即只匹配该Uri
为true 表示可以同时匹配其派生的Uri,举例如下:
假设UriMatcher 里注册的Uri共有一下类型:
1 、content://com.qin.cb/student (学生)
2 、content://com.qin.cb/student/#
3、 content://com.qin.cb/student/schoolchild(小学生,派生的Uri)
假设我们当前需要观察的Uri为content://com.qin.cb/student,如果发生数据变化的 Uri 为
content://com.qin.cb/student/schoolchild ,当notifyForDescendents为 false,那么该ContentObserver会监听不到,
但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。
I. 如何实时监测数据库变化
然后在新增信息模块将消息存入一个队列,每隔固定时间(如500ms)向nodejs服务发送一次请求,比如http的post或UDP协议,并清空队列。
每隔固定时间发送是为了减少发送次数,根据服务的实时性可以取消或者增加。
hu.js上朋友网用nodejs做的就是这样的事情。
另一个,不理解“不在线的用户会收到一个提示”,怎么提示?提示可以拆成另一个服务,在推信息的时候可以根据用户状态判断是调用哪个服务
J. 如何监控mysql数据库的变化
1、打开数据库配置文件my.ini (一般在数据库安装目录)(D:\MYSQL)
2、在数据库的最后一行添加
log=log.txt
代码
3、重启mysql数据库
4、去数据库数据目录 我的是(D:\MYSQL\data) 你会发现多了一个log.txt文件
我的是在C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\data
测试:
1、对数据库操作
2、查看log.txt文件内容 如果发现有变化说明你就可以监控到mysql数据库的变化
数据库的查询 删除 更新 插入都可以查到
希望本篇文章可以帮助大家更快的二次开发 ^_^
日志文件类型概述:
1.
错误日志 记录启动、运行或停止mysqld时出现的问题。
My.ini配置信息:
#Enter a name for the error log file. Otherwise a default name will be used.
#log-error=d:/mysql_log_err.txt