java - 使用java合并两个ms access数据库

标签 java ms-access jdbc

我正在尝试使用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 查询设计窗口构建,仅稍加修改。

关于java - 使用java合并两个ms access数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14412609/

相关文章:

java - 初始 SessionFactory 创建失败。javax.persistence.PersistenceException

java - 如何使用递归方法打印 a 到 z

sql - Access 查询 : Running total without using DSum (or another approach all together)?

java - 使用 JDBC 参数化 IN 子句的最佳方法是什么?

java - Android 修改 Zip 文件

ms-access - VBA类模块: Runtime error 438 Object doesn't support this property or method

asp.net - 复制 SQL 数据的最快方法

java - 使用 JDBC 可调用语句从 Java 调用的 Oracle 存储过程中绑定(bind)参数的顺序不正确

java - 如何使用从主机到 docker mysql 服务器的 JDBC 连接

java - 类 "ResultSet"和 "executeQuery"是特定于数据库供应商的吗?