将mysql二进制日志转移到CDC中选择

时间:2015-03-12 09:01:43

标签: java mysql regex

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

所以有人做的时候

insert into sometable(uid,somecolumn) values(uid,something)

我的代码将被触发并执行

select from sometable where uid=uid

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

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

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

Insert into `table` (`col`) values (select 0 as `col` from `dummy`);

如何找出col = 0?

是否不可能使用insert语句触发选择新更改行的select语句?

1 个答案:

答案 0 :(得分:0)

TRIGGER中,您可以访问OLDNEW值。有了它们,您可以编写代码(在TRIGGER中)来记录,例如,只记录更改。有点像...

IF NEW.col1 != OLD.col1 THEN INSERT INTO LOG ...; END; 
IF NEW.col2 != OLD.col2 THEN INSERT INTO LOG ...; END;