MySQL 中的变更数据捕获

Adi*_*kla 5 mysql sql

在我的数据库中,我想在列更改时跟踪它的值。以这样的方式,每次字段的值更改时,我们都可以知道以前的值是多少。为每个更改分配时间戳会很棒。我我使用 MySQL 作为数据库服务器。

Gun*_*nar 9

我建议您查看Debezium一个开源 CDC 平台,除其他外,它还支持 MySQL

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

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


Orb*_*ing 6

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

查看CREATE TRIGGER的文档。

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