首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL中的变更数据捕获

MySQL中的变更数据捕获
EN

Stack Overflow用户
提问于 2010-12-09 10:39:41
回答 5查看 11.3K关注 0票数 6

在我的数据库中,我想要跟踪列的值,无论它何时被更改,这样每次字段的值更改时,我们都可以知道前一个值是什么,如果能为每次更改分配时间戳,.It将是非常棒的。我使用MySQL作为数据库服务器。

EN

回答 5

Stack Overflow用户

发布于 2018-07-25 05:15:56

我推荐你看看Debezium,这是一个开源的CDC平台,在其他平台中,还有supports MySQL

您可以使用Debezium将更改流式传输到Apache Kafka中,但通过其embedded mode,您还可以将Debezium连接器用作Java应用程序中的库,并轻松地将数据更改传播到其他流式API,如Kinesis等。

免责声明:我是Debezium项目的负责人。

票数 9
EN

Stack Overflow用户

发布于 2010-12-09 10:47:54

为此,您需要创建一个触发器,该触发器是在给定表上发生INSERT, UPDATE, DELETE时触发的事件。

请查看CREATE TRIGGER的文档。

对于您想要做的事情,您可能需要有一个辅助表,它为主表上的每个INSERT/UPDATE插入一行,AFTER它恰好包含更改的行的ID、旧值、新值和一个时间戳。

票数 7
EN

Stack Overflow用户

发布于 2014-04-01 14:15:46

触发器并不总是在数据库中记录更改事件的最佳方式。一旦表的模式发生更改,As触发器就会失效,这反过来会导致实际的表操作失败。

对于mysql,您需要从二进制日志文件中捕获更改事件。Mysql提供了读取二进制日志的API (5.6版后)。

您可能还需要查看Flexviews,它提供了类似于Oracle的实体化视图日志来记录更改事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4394359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档