【发布时间】:2011-08-10 13:55:04
【问题描述】:
我有一个基于 VFP 的应用程序,其中包含一个完整的 DBF 目录。我在 .NET 中使用 ODBC 连接并在此数据库上执行事务。我想将此数据镜像到在我的虚拟主机上运行的 mySQL。
注意事项:
- 这将只是一个单向镜像。 VFP 到 mySQL
- 必须只支持插入和更新。删除无关紧要
- 并非所有表都是必需的。事实上,我更愿意使用已定义的 SELECT 语句来仅镜像必要数据的伪视图
- 我在任何 VFP 记录上都没有“时间修改”标记。
- 我没有大量的数据记录(可能总共几千条),也没有大量的 mySQL 端并发用户,但我希望尽可能高效。
建议的插入策略(看起来还不错……):
- 在 mySQL 中构建临时表,插入我要镜像的 VFP 表/视图的所有主键
- 在 mySQL 端运行“SELECT primaryKey from tempTable not in (SELECT primaryKey from mirroredTable)”以识别缺失记录
- 为这些记录生成并运行必要的 INSERT sql
- 吹走临时表
提议的更新策略(似乎真的很重量级,可能会破坏对 mySQL 删除表的打开查询):
- 在 mySQL 中构建临时表并插入我要镜像的 VFP 表/视图中的所有记录
- 删除现有的 mySQL 表
- 将 tempTable 名称更改为新表名称
这些只是首先想到的策略,我相信还有更有效的方法(尤其是更新方面)。
我在这里寻找一些替代策略。有什么绝妙的想法吗?
【问题讨论】:
标签: mysql synchronization visual-foxpro