[英]merge two ms access database using java
我正在尝试使用Java
合并两个ms access
数据库。 我正在从一个数据库建立连接,而从另一个数据库建立另一个连接。 我将所有记录从每个表复制到另一个数据库中的表。
除了将记录从一个数据库表复制到另一数据库表之外,还有其他解决方案吗? 这两个数据库具有相同的表结构。
在大多数情况下,复制关系数据库要比单纯复制表要多得多。 例如,您必须考虑复制数据的顺序,以避免破坏完整性。
关于要复制的SQL,Access将接受外部mdb / acdb的名称作为目标,因此只要您没有附件或多值字段数据类型,前两个语句就可以使用。 另一个问题是自动编号ID,如果它们可能重叠,则INSERT INTO是不安全的,因为您可能会重复。
SELECT * INTO AnotherTest IN 'Z:\Docs\test.accdb'
FROM test;
INSERT INTO AnotherTest IN 'Z:\Docs\test.accdb'
SELECT *
FROM test;
尽管上面的INSERT通常可以工作,但是列出这些字段(忽略任何自动编号字段)要安全得多。
INSERT INTO AnotherTest ( AText, ADate, ANumber ) IN 'Z:\Docs\test.accdb'
SELECT test.AText, test.ADate, test.ANumber
FROM test;
所有语句都是使用MS Access查询设计窗口构建的,仅作了少许修改。
您是否正在使用SQL执行此操作? 如果是这样,那可能是您的SQL代码而不是Java代码的问题。
您可以对程序进行多线程处理,以便将每个表或一组表复制到不同的线程中。 如果表名不变,这将特别有用,因为您可以创建表名数组和线程子类,以将名称放入SQL查询中。 如果您使用的线程池大约为10个,这应该可以加快速度,尽管请谨慎操作,因为根据我对Access和Java的经验,数据库很容易损坏,因此在尝试执行此操作之前,请确保已备份。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.