MySQL NDB 事件 - 侦听对特定行的更改
MySQL NDB Events - listening for changes to specific row
我在 NDB API 中使用事件。我想知道是否可以根据特定行侦听事件...
例如:
CREATE TABLE mytable( id int(11) NOT NULL AUTO_INCREMENT,
name varchar(40),
PRIMARY KEY(id) );
INSERT INTO mytable values(NULL,'john');
INSERT INTO mytable values(NULL,'sallie');
INSERT INTO mytable values(NULL,'martin');
INSERT INTO mytable values(NULL,'alex');
所以,现在我们有一个包含两列的 table(mytable)。并且我们添加了 4 行。
在我测试 NDB API 的示例中,我能够判断其中一个名称何时被更改。因此,假设我们将 'john' 更改为 'jim'。在我的代码中,在 pollEvents() 和 getValue() 之后,通过查看 NdbRecAttr 的内容,我能够看到 'john' 已更改为 'jim'。
但是,有没有办法只监听特定 id(行)的变化?
例如,假设我想知道名称 'alex'(PK id = 4) 何时更改。
这可能吗?
或者有没有办法在事后判断哪一行被更改了?
我能找到实现此目的的唯一方法是使用 Event::addEventColumn() 以及您正在侦听事件的列来请求主键。然后你可以根据 that/those 主键
执行你自己的过滤
https://dev.mysql.com/doc/ndbapi/en/ndb-event-methods.html#ndb-event-addeventcolumn
我曾处理过类似的要求,每当 MySQL 数据库中发生变化时都需要回调。正如您可能知道的那样,NDB 只是引擎,通过 MySQL 前端可能实现的功能仍然是可能的。
所以我建议你选择 ODB and register a callback for post-update
as explained here http://www.codesynthesis.com/products/odb/doc/manual.xhtml#17
我在之前的项目中使用过它,解决方案非常可靠
我在 NDB API 中使用事件。我想知道是否可以根据特定行侦听事件...
例如:
CREATE TABLE mytable( id int(11) NOT NULL AUTO_INCREMENT,
name varchar(40),
PRIMARY KEY(id) );
INSERT INTO mytable values(NULL,'john');
INSERT INTO mytable values(NULL,'sallie');
INSERT INTO mytable values(NULL,'martin');
INSERT INTO mytable values(NULL,'alex');
所以,现在我们有一个包含两列的 table(mytable)。并且我们添加了 4 行。
在我测试 NDB API 的示例中,我能够判断其中一个名称何时被更改。因此,假设我们将 'john' 更改为 'jim'。在我的代码中,在 pollEvents() 和 getValue() 之后,通过查看 NdbRecAttr 的内容,我能够看到 'john' 已更改为 'jim'。
但是,有没有办法只监听特定 id(行)的变化?
例如,假设我想知道名称 'alex'(PK id = 4) 何时更改。
这可能吗?
或者有没有办法在事后判断哪一行被更改了?
我能找到实现此目的的唯一方法是使用 Event::addEventColumn() 以及您正在侦听事件的列来请求主键。然后你可以根据 that/those 主键
执行你自己的过滤https://dev.mysql.com/doc/ndbapi/en/ndb-event-methods.html#ndb-event-addeventcolumn
我曾处理过类似的要求,每当 MySQL 数据库中发生变化时都需要回调。正如您可能知道的那样,NDB 只是引擎,通过 MySQL 前端可能实现的功能仍然是可能的。
所以我建议你选择 ODB and register a callback for post-update
as explained here http://www.codesynthesis.com/products/odb/doc/manual.xhtml#17
我在之前的项目中使用过它,解决方案非常可靠