在我的数据库中,我想要跟踪列的值,无论它何时被更改,这样每次字段的值更改时,我们都可以知道前一个值是什么,如果能为每次更改分配时间戳,.It将是非常棒的。我使用MySQL作为数据库服务器。
发布于 2018-07-25 05:15:56
我推荐你看看Debezium,这是一个开源的CDC平台,在其他平台中,还有supports MySQL。
您可以使用Debezium将更改流式传输到Apache Kafka中,但通过其embedded mode,您还可以将Debezium连接器用作Java应用程序中的库,并轻松地将数据更改传播到其他流式API,如Kinesis等。
免责声明:我是Debezium项目的负责人。
发布于 2010-12-09 10:47:54
为此,您需要创建一个触发器,该触发器是在给定表上发生INSERT, UPDATE, DELETE
时触发的事件。
请查看CREATE TRIGGER的文档。
对于您想要做的事情,您可能需要有一个辅助表,它为主表上的每个INSERT/UPDATE
插入一行,AFTER
它恰好包含更改的行的ID、旧值、新值和一个时间戳。
发布于 2014-04-01 14:15:46
触发器并不总是在数据库中记录更改事件的最佳方式。一旦表的模式发生更改,As触发器就会失效,这反过来会导致实际的表操作失败。
对于mysql,您需要从二进制日志文件中捕获更改事件。Mysql提供了读取二进制日志的API (5.6版后)。
您可能还需要查看Flexviews,它提供了类似于Oracle的实体化视图日志来记录更改事件。
https://stackoverflow.com/questions/4394359
复制相似问题