Sugarcrm通过批处理将表复制到另一个数据库表(cronjob)

时间:2011-11-24 03:05:56

标签: php mysql sugarcrm

我对sugarcrm有一些问题。 如你所知,sugarcrm表,它们确实有ID(这是一个唯一的字符串),它们不是按顺序运行的。例如

  

4bab37e4-798a-e01c-75de-4e4397f358b7

例如,我想将表sugarcrm.accounts复制到something.accounts,在something.accounts中我在其上添加了一些自定义文件以供其他PHP进程使用。

现在的问题是,我的sugarcrm表在那里得到了很多记录,我打算一批一批地运行它,每次我想将10,000条记录复制到我的somthing.accounts

然而,sugarcrm.accounts,他们的ID,而不是顺序,我怎么知道偏移参数?

我不想修改sugarcrm表/或在sugarcrm中添加临时表。 (例如sugarcrm.account_index),它可能导致我在升级时遇到问题。

所以任何人都有任何想法,我如何获得索引号? MySQL是否隐藏了索引?

或者有人有更好的想法让数据库表复制另一个数据库表吗?

1 个答案:

答案 0 :(得分:1)

一种方法如下:   - 从sugarcrm.accounts中选择所有行,并按date_created升序排序。   - 使用限制仅选择行的子集(存储批次之间的偏移量)   - 将行子集复制到something.accounts

如果稍后添加新记录,它们仍将被复制,因为它们将在集合中的最后一个。但是,如果在运行批处理作业时删除sugarcrm.accounts中的记录,则还需要更改偏移量,因为您可能会省略某些行。

另一种方法是,如果两个数据库/表在同一个MySQL实例中,则加入这两个表,然后选择something.accounts中不存在的下一个10.000。