java - 有没有办法将derby数据库表行转换为SQL插入语句

标签 java derby ddlutils

我已经使用 ddlUtils 成功导出了 Derby 架构,但是如何导出 derby 中的表数据以插入 SQL 语句?

最佳答案

如果您愿意为此使用第三方工具,您可以使用 jOOQ

public class ExportAsInsert {
    public static void main(String[] args) {
        try (DSLContext ctx = DSL.using(url, user, password)) {
            ctx.meta()
               .getSchemas()
               .stream()

               // Filter out those schemas that you want to export
               .filter(schema -> schema.getName().equals("TEST"))

               // Get the tables for each schema...
               .flatMap(schema -> schema.getTables().stream())

               // ... and format their content as INSERT statements.
               .forEach(table -> System.out.println(ctx.fetch(table).formatInsert()));
        }
    }
}

有一个known issue上面在插入语句中生成了错误的表名。您可以通过修补输出来解决此问题:

System.out.println(
    ctx.fetch(table).formatInsert().replace("UNKNOWN_TABLE", table.getName()));

(免责声明:我在 jOOQ 背后的公司工作)

关于java - 有没有办法将derby数据库表行转换为SQL插入语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33353963/

相关文章:

java - 如何使用 MySQL 按日期过滤数据(从 JCalendar 获取)

java - @Produces(MediaType.APPLICATION_JSON) 和 @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 参数类型的内部详细信息?

java - NetBeans The module has not been deployed 报错

java - 将新软件安装到 Eclipse

java.sql.SQLSyntaxErrorException : Syntax error: Encountered "St\u00f6rungen"

用于读取数据库模式的 Java 库

java - 配置错误。连接到数据库时找不到类 [org.apache.derby.jdbc.EmbeddedDriver]

java - 将语句插入 Derby 数据库

java - 使用 ddlutils 转换数据库的问题

java - 使用 HSQLDB (2.2.8) + DDLUtils 自动增量