首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CDC中将mysql二进制日志转换为select

在CDC中将mysql二进制日志转换为select
EN

Stack Overflow用户
提问于 2015-03-12 17:01:43
回答 1查看 96关注 0票数 0

我想从mysql中进行实时读取。想法很简单。我使用二进制日志来触发select语句。同时,我希望在每次更改时只读取新的行。目前我只考虑插入。

所以当有人这么做的时候

代码语言:javascript
复制
insert into sometable(uid,somecolumn) values(uid,something)

我的代码将被触发并执行

代码语言:javascript
复制
select from sometable where uid=uid

当然,我已经写下了哪些列是主键,因为它似乎没有来自binlog的信息。

我找不到工具分析mysql insert语句。所以我使用正则表达式来找出哪一列等于哪个值,然后提取主键。

但真正的问题是如果我这么做了会发生什么

代码语言:javascript
复制
Insert into `table` (`col`) values (select 0 as `col` from `dummy`);

我怎样才能找到col=0?

由insert语句触发的select语句选择新更改的行是不可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-31 09:10:15

TRIGGER中,您可以访问OLDNEW值。使用它们,您可以编写代码(在TRIGGER中)来记录日志,例如,只记录更改。就像..。

代码语言:javascript
复制
IF NEW.col1 != OLD.col1 THEN INSERT INTO LOG ...; END; 
IF NEW.col2 != OLD.col2 THEN INSERT INTO LOG ...; END; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29005476

复制
相关文章

相似问题

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