有什么方法可以将 derby 数据库 table 行转换为 SQL 插入语句

Is there any way to convert derby database table rows to SQL insert statements

我已经使用 ddlUtils 成功导出了 Derby 模式,但是如何在 derby 中导出 table 数据以插入 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 在插入语句中生成了错误的 table 名称。您可以通过修补输出来解决此问题:

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

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

  1. 运行 您的 SQL 请求类似于“select * 来自 schema.table;”。
  2. 在显示行的window处,select都是用键盘输入的,不是“control+A”,没有效果
  3. 右键单击并在上下文菜单中,select“显示 SQL 用于插入的脚本”:显示一个弹出窗口 window,您只需复制内容到文本文件。

注意:我使用的是 Netbeans 8.2。